2017-08-19 14 views
0

私はまだRoRを学んでおり、アプローチや解決方法が分かりません(エレガントでRoRフレンドリーな方法で)。レコードの一時的なスケールまたは掛け算の値は?

コンテキストのために、私は料理レシピ、ビュー、モデル)フルCRUD、うまく動作します。今、このレシピは、10人の人を対象としています。しかし、この特定の時間、私は15人、またはたぶんわずか5人を調理しなければならないでしょう。これは新しいレシピではなく、レシピのスケール/レシオです。

この一時アイテムを処理するための新しいクラスを作成する必要がありますか? CRUD以外のアクションを作成しますか?

すべてのアイデアやコメントは歓迎です=) ありがとう!

+0

クエリパラメータを使用して渡します。 '/ recipes/1?portions = 12' – max

+0

誰かがこのb/cを閉じるのに投票しました。何が助けになるかは、あなたが試したアプローチを示し、あなたがどこにいるのかを説明することです。しかし、私はここにいるので...これのための新しいクラスを作ることは不要です。レシピが異なる人数のために準備される場合、アプリケーションロジックはそれに応じて比率を調整する必要があります。 –

答えて

0

concern(またはコントローラレベルまたはビューで計算するかどうかによってビューヘルパー)を作成します。

Concernsは、その後にアクセスできるようにあなたのApplicationControllerapplication_controller.rb)にロードされ、コントローラのビュー(アプリ/コントローラ/懸念

concernフォルダに配置する必要がありますすべてのあなたの他のコントローラ。あなたのケースでは

、懸念が続いてapplication_controller.rbに追加することで、あなたのアプリにこれをロードするこの

module RecipeScale 
    def recipe_scale(ingredient_value, init_numb_of_people, new_numb_of_people) 
    return (ingredient_value/init_numb_of_people) * new_numb_of_people 
    end 
end 

次のようになります。今、あなたがrecipe_scaleを呼び出すことができますinclude RecipeScale

あなたのアプリ。

前提条件:すべての数値は浮動小数点数ですが、そうでない場合は適切にキャストする必要があります。

+0

なぜコントローラの懸念事項であり、モデルレベルではないのですか?あなたの提案されたコードもエラーでいっぱいでした。 – max

+0

@maxなぜですか?私はあなたがビューヘルパーまたはそれらのケースを処理するビューのいくつかのJSにすることもできますが、私はこのタイプのロジックがコントローラにあるべきだと思うので、APIを速くスタックすることができます –

関連する問題