0

モデルで次のことを行うのが正しいかどうか疑問に思いました。

get_partial
    #logic...
      return "_partial_name1"
    #more logic
      return  "_partial_name2"
    #more logic
      return  "_partial_name3"
    else
      "_partial_name4"
    end
end

とビューで:

<%= render @product.get_partial %>

モデルにはerbコードはなく、表示する部分を選択するロジックのみが表示されます。テストして動作しましたが、MVCの観点から正しいかどうかを知りたいと思いました。そうでない場合、このロジックはどこに配置する必要がありますか?

4

3 に答える 3

3

モデルは、レンダリングするビューを気にする必要はありません。

何をするかを決定するロジックが必要な場合は、ビューヘルパーを使用してください。

于 2012-10-22T14:15:12.347 に答える
1

ビューでは、if..elseロジックをそこに配置するだけでよいと思います。どちらの方法でも、このロジックをモデルに配置することは望ましくありません。おそらくあなたはコントローラーを意味していましたが、それをビューに入れるのが最善の方法だと思います

<% if (condition) %>
    <%= render 'partial1' %>
<% else %>
    <%= render 'partial2' %>
<% end %>
于 2012-10-22T13:48:56.450 に答える
0

さて、最善の行動はヘルパーを使用することだと思われます。私はそれを行います。

于 2012-10-22T14:22:05.210 に答える