動的コンテンツを含むページを作成しようとしています。お互いにリンクしている一連の部分的な部分です。ユーザーが完了すると、多くの部分からなる完全な文書が作成されます。私は<%= render 'section1' %>
のようなケースステートメントを使うことができると思っていました。それぞれの部分ステートメントは、58のリストから5つまたは6つのユーザー選択パーシャルの文書を作成するために独自のcaseステートメントを持っています。 case文の入力をレールに与えます。 form_for
を使用することができますか?また、各部分をレンダリングするためのレール入力をユーザーに与える別の方法はありますか?レールでパーシャルをレンダリングするためのcase文5
1
A
答えて
0
私はこの提案から始めますが、私はあなたがこれに反応するにつれて少し調整すると思います。 form_choicesは、含める各セクションの名前になります。私の変数については、私はレジュメビルダーアプリに含まれるセクションを描いていました。私はこのようなチェックボックスのコレクションを使用するように教えていますので、私のアプローチは最も一般的ではないかもしれません。レールの組み込みcheck_box機能を使用する方法がありますが、 "includeのリスト"を収集しようとすると問題が発生しています。
この例に従うには、あなたはそれがその値として配列を受け入れることができるように、あなたのDynamicPageモデルに「sections_to_include」列を定義する必要があります:
アプリ/モデル/ dynamic_page.rb
serialize :sections_to_include
dynamic_page_controller.rb
def new
@dynamic_page = DynamicPage.new
end
def create
@dynamic_page = DynamicPage.new(dynamic_page_params)
if @dynamic_page.save
redirect_to dynamic_page_path(@dynamic_page)
else
render 'new'
end
end
private
def dynamic_page_params
params.require(:dynamic_page).permit(sections_to_include: [])
end
アプリ/ビュー/ dynamic_page/new.html.erb
<% form_choices = ["Name", "Contact Info", "Objective", "Work History", "Other Experience", "Skills", "References"] %>
<%= form_for @dynamic_page do %>
<% form_choices.each_with_index do |c, index| %>
<input name="dynamic_page[sections_to_include]" type="checkbox" value="<%= index %>" />
<p><%= c %></p>
<% end %>
<%= submit "Build this Page" %>
<% end %>
今、あなたはsections_to_include列で定義した配列によるショーページ反復します。それぞれについて、section_1、section_2などと呼ばれる部分をレンダリングします。これは、前のフォームのチェックボックスのID番号と一致します。
アプリ/ビュー/ dynamic_page/show.html.erb
<% @dynamic_page.sections_to_include.each do |section_id| %>
<%= render :partial => "/dynamic_page/section_#{section_id}" %>
<% end %>
関連する問題
- 1. 各パーシャルのレールがページされます
- 2. Railsでパーシャルを使用するためのベストプラクティス
- 3. rubyバージョンのため、レール5に更新できません
- 4. は5をレールにアップグレードする前に、アップグレードされたレール5アプリケーション
- 5. belongs_toオブジェクトタイプに応じて異なるパーシャルをレンダリングするためにコントローラを使用する
- 6. レールでインラインでレンダリング
- 7. レールがレンダリングされたモデル
- 8. Railsヘルパーを使ってパーシャルをレンダリングする
- 9. case文with case文Spotfire
- 10. モデル内にJbuidlerパーシャルをレンダリングする方法は?
- 11. case文を以下の表構造のためのCASE文を書こうとMySQLの
- 12. レールにERBとインデントをレンダリングするためにどのように部分的
- 13. Rails 4:なぜパーシャルをレンダリングするのが速いのですか?
- 14. オラクルでループのために基づくcase文を使用する方法
- 15. 格納するためのデータはどのようにレール5つの
- 16. カピストラーノ3レール5
- 17. レール5ページキャッシュ
- 18. レール5は、
- 19. レール5 - メーラーのテスト
- 20. サブステートメントcase文で
- 21. レール上の部分onclickをレンダリングする
- 22. レール5:私はすでにこれを読んできたレール(HTML5)
- 23. スペースを使用したレールの移動のための構文
- 24. はINCLUDEまたは列の検索クエリのためのCASE文の中で - SQL
- 25. Umbraco 5で日付フィールドをレンダリングする
- 26. Turbolinksでフォームエラーページをレンダリングする方法5
- 27. #define switch case文でC++キーワード 'case'?
- 28. は、文書のリストをレンダリングするために流星
- 29. Bash regex case in case文
- 30. case文
この方法で提出押すと、レールはポストルートを探すために起こっています。私がモデルを更新していない場合、コントローラはこの情報で何をすべきですか?その部分をレンダリングするためにビューにどのように指示する必要がありますか? – Martin
あなたの質問はもう少しだと思うので、おそらくモデルを更新するべきです。コントローラと2番目のビューで使用できるコードを追加しました。私はこれをテストしていないので、paramsは私が考えている方法を正確に並べることはできません。 section_to_include列が次のビューで必要とされる配列の型を受け取っているかどうかを確認するために、少しデバッグする必要があります。 –