3

我在 Rails 中有一个 HTML 表单:

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

我想使用 a 添加一个新字段<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 -%>

请注意,您的 textarea 上没有nameor id,所以我任意为它们分配了 string "comment",这对于这种情况是有意义的。

在访问用户输入的值方面,您只需像任何其他形式一样进行操作,即在您的控制器中您只需访问params[:title]params[:comment]

于 2012-11-24T03:23:36.423 回答
1

如果您使用 form_tag 助手,那么您可以按如下方式创建 textarea:

      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[: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 回答