2016-11-11 5 views
0

私はちょうどpass_valueを使用してコントローラの他のプロパティに値を渡したいので、このようなフォームが必要です。しかし、それは動作しません。これを行うには適切な方法を教えてください。Railsではフォームの内部にフォームタグを使用できますか?

<% form_for @person do |f| %> 
    <%= f.text_field :name %> 
    <%= text_tag :pass_value %> 
    <%= f.submit %> 
<% end %> 

答えて

1

あなたが別のフォーム内form_tag使用cannnot。しかし、pass_valueの値を実際には属性として渡したくない場合は、仮想属性を使用してみてください。 :attr_accessorメソッドを使用することができます。

2

いいえ、フォーム内でフォームタグを使用することはできません。 )http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for

B:fields_forため

fields_for :widget do |g| 
    g.text_field :widget_name 
end 

DOC:これは、ネストされたモデルであれば、あなたが何かのようにそれを使用することができます

A)fields_for

:しかし、あなたはのいずれかを使用することができますtext_field_tag

単なる独立したフィールドの場合

text_field_tag 0
<%= text_field_tag :some_value %> 

DOC: http://apidock.com/rails/ActionView/Helpers/FormTagHelper/text_field_tag

+0

感謝した後だけで、HTMLフォームのように

input type="hidden" name="person[pass_value]" [email protected]_value 

として、生のHTMLタグが使用できます。 2番目の解決策は私の問題を解決することができますが、4つのテキストフィールドがある場合は、名前、pass_value、年齢、住所としましょう。 pass_valueは値を渡すために使われたものであり、モデルの属性ではありません。また、pass_valueを2位にしたいと思います。しかし、text_field_tagを使用すると、パスの値はフォームの前後にしか配置できないと思います。 –

+0

いいえ、テキストフィールドタグは常にフォーム内に配置されるか、動作しません。 'f.text_field'と同じものを使い、好きな場所に置くことができます。必要ならば他のフィールドの中に置くことができます。 –

0

あなたはそれがあなたの助けのためのすべての

関連する問題