1

新しいアクションのRailsビューがあります。私はformtasticを使用してフォームを生成しています。オプションで、コントローラーに渡された可能性のあるプロフォーマテンプレートがあります。

私がやりたいのは、フォームが送信されたときにこのproforma_idがcreateメソッドに渡されることを確認することです

私はそれを行う方法を見つけましたが、これが少しハックであるかどうか、そしてそれを行うためのよりクリーンでルビーのような方法がないかどうかを知りたいです:

<% params = {:proforma_id => @proforma.id} unless @proforma.nil? %>
<%= semantic_form_for @document, :url => documents_path(params) do |f| %>

たぶん私はパラメータ行をコントローラに配置する必要がありますか?

4

1 に答える 1

2

URLに含めるか、POSTデータに含めるかに応じて、2つの方法で渡すことができます...

あなたが発見したように、最初の方法はそれをurlパラメータで渡すことです。その変数をコントローラーで設定することもできますが、おそらく

<%= semantic_form_for @document, :url => documents_path(:proforma_id => @proforma.try(:id)) do |f| %>

追加のパラメータがnillの場合、IIRCは表示されません。

もう1つのオプションは、それを非表示の変数としてフォームに配置することです。

<%= hidden_field_tag :proforma_id, @proforma.try(:id) %>
于 2012-05-16T18:31:11.653 に答える