3つの異なる部分があり、正確な製品(データベース内のレコード)に応じて異なる場所で表示されるようにします。いくつかの製品では、私は3つのパーシャルのうちの2つを表示したいだけです。私はこれをどのように実現するのでしょうか? ありがとうございます。Rails 4はデータベース内の変数に基づいて部分的にレンダリングされます
0
A
答えて
2
カスタムロジックを使用してパーシャルをレンダリングするテンプレート(例:products/show.html.erb
)があると仮定して、そのテンプレートに条件ロジックを埋め込むことをおすすめします。ここでは、私の前提の多くの例を挙げています。詳細を追加して、私は更新することができます。
まず、私は仮定していプライマリテンプレートは、あなたのshow
アクションです:
# products/show.html.erb
<h1>Product <%= @product.name %></h1>
<p><%= @product.description %></p>
<% if @product.is_fungible? %>
<%= render partial: 'products/fungible', locals: { product: @product } %>
<% end %>
<% if @product.is_edible? %>
<%= render partial: 'products/edible', locals: { product: @product } %>
<% else %>
<%= render partial: 'products/inedible', locals: { product: @product } %>
<% end %>
そして、あなたのパーシャルは、我々はローカル変数としてproduct
に渡されてきたことから、その点に注意してください(そうのようになります。我々は彼らに、インスタンス変数@product
を使用する必要はありません。
# products/_fungible.html.erb
<p>This product is definitely fungible, by a factor of <%= product.fungibility %>.</p>
+0
これは動作する1つのソリューションです。私はまた、私は変数として、テンプレートを参照してその変数との部分的な指定を使用することができますが見つかりました。 <%render partial => product.partialone%>たとえば、product.partialoneが "products/edible"の場合です。 –
関連する問題
- 1. コレクションのサイズに基づいて部分レンダリングが部分的にレンダリングされる
- 2. Rails 4は部分的にローカルでレンダリングされます
- 3. Rails&Javascript:ブートストラップボタンのドロップダウンに基づいてモーダルで部分的にレンダリング
- 4. Rails:属性に基づいて部分的にグループ化する
- 5. Ruby on Rails 4のレンダリング部分がレンダリングされない
- 6. Ruby on Railsで部分的に定義されていないローカル変数がレンダリングされます
- 7. rails 4未定義のローカル変数レンダリング部分has_many_through
- 8. のRails:部分コレクションをレンダリング:私は部分的にレンダリングしたいアイテムのコレクション
- 9. Rails:.coffeeファイルに部分的にレンダリング
- 10. Rails 4、Turbolinkは部分的レンダリング後にjavascriptを実行します
- 11. レール4:私は部分的に、次のしている変数
- 12. Rails 4 - 部分的に複数のブロックを返します
- 13. レンダリングはコントローラから部分的にレンダリングされます
- 14. "fields_for"は部分的に含まれているとレンダリングされません
- 15. データベースの内容に基づいて部分を表示する方法
- 16. データベース内のオブジェクトは部分的にしか格納されていません
- 17. 修正済みのRailsチュートリアルアプリケーションでは部分的にレンダリングされないフォーム
- 18. Rails:エラーメッセージ部分的レンダリングしない
- 19. Rails - 別の部分の編集部分を部分的にレンダリングする
- 20. PHPは自動的にmysqlデータベースの内容に基づいて変数を作成します
- 21. RailsとjQueryで部分的にビューを動的にレンダリングする
- 22. 部分ビュー内のアクションに基づいて、メインビュー内でいくつかの部分ビューを返します。
- 23. REST APIのレスポンスに基づいてangularjsがレンダリングされます
- 24. Rails 4のデータベースに基づくチェックボックスの設定
- 25. Rails check_box_tagはブール値に基づいてチェックされます
- 26. 部分的にレンダリングする部分のレンダリング
- 27. jbuilderを使用してビューをRailsのコントローラ内の変数に部分的にレンダリングするにはどうすればよいですか?
- 28. レンダリング部分的なonclick in Rails
- 29. rails 5.1:ajaxを使って変数を部分的に渡す
- 30. Laravelラジオボタンはデータベース値に基づいてチェックされます
私はわからない、これはJSやCSSが必要ですまたはレールソリューションがあれば、私は何をしようとしていないが、良い方法を探している場合。これを達成する。 –
正確な製品(またはデータベースのレコード)に応じて、ビューにパーシャルを表示したいので、レールを使用する必要があります。このためにコントローラメソッドを使用することができます。 – luissimo
かなりの組み合わせがあります。コントローラーメソッドはどのように見えますか?ちょうどケースステートメント? –