3

RailsにHTMLフォームがあります:

<form id="my_form" action="submit">
  Title: <input type="text" name="title"> 
</form> 

<textarea>:を使用して新しいフィールドを追加したい

Comment: <textarea rows="4" cols="50"></textarea>

これをフォームに入れても大丈夫ですか?ユーザーが入力した値にアクセスするにはどうすればよいですか?

4

3 に答える 3

7

正当な理由がない限り、Railsが提供するアクションビューヘルパーを実際に使用する必要があります。

フォームヘルパーは、特定のモデルオブジェクトの周囲にフォームとスコープを作成するリソース指向のメソッドを提供しますが、これはあなたのケースには適していません。

代わりに、一般的なフォームタグヘルパーを使用することをお勧めします。これには、特定のモデルやレコードに関連付けられていないフォームメソッドの一般的なバージョンが含まれます(例:、、form_tagなどtext_field_tagtext_area_tag。これらのメソッドでは、レコードをに渡す必要はありません。それらまたは特定のモデルの観点からそれらを定義します。次のように、任意のアクション、IDなどを定義できます。

<%= form_tag "submit", :id => "my_form" do -%>
  Title: <%= text_field_tag "title" %>
  Comment: <%= text_area_tag "comment", :rows => 4, :cols => 50 %>
  <%= submit_tag "Submit" %>
<% end -%>

nameテキストエリアにまたはテキストエリアがないことに注意してください。そのため、この場合に意味のidある文字列を任意に割り当てました。"comment"

ユーザーが入力する値にアクセスするという点では、他のフォームと同じようにアクセスします。つまり、コントローラーでアクセスするだけparams[:title]ですparams[:comment]

于 2012-11-24T03:23:36.423 に答える
1

form_tag ヘルパーを使用すると、次のようにテキストエリアを作成できます。

      text_area_tag(:comment, nil, :rows => 5, :cols => 15)

form_tag のコードは次のようになります。

  <% form_tag :action => :submit do %>
  <%= label_tag "Title" %>
  <%= text_field_tag :title %>
  <%= text_area_tag :comment, nil, :rows => 5, :cols => 15 %>
  <%= submit_tag "submit" %>
  <% end %>

コントローラーに submit というメソッドが必要です。そのメソッドでは、params を使用してコメントにアクセスできます。たとえば、コメントは params[:comment] としてアクセスできます。

詳細については、これを参照してください: forms_and_tags

于 2012-11-24T03:10:15.363 に答える
0

ユーザーがタイトルを押したときにこの方法を使用するのはどうでしょうか。ボックスが強調表示され、ユーザーにもう少し柔軟性が与えられます。

<form id="my_form" action="submit">
<label for="title">Title: </label>
<input type="text" name="title" id="title"> 
</form> 
于 2012-11-24T02:58:23.680 に答える