Rails中的Textarea形式

时间:2012-11-24 02:23:59

标签: html ruby-on-rails

我在Rails中有一个HTML表单:

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

我想使用<textarea>添加新字段:

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

将它放入表格中可以吗?如何访问用户填写的值?

3 个答案:

答案 0 :(得分:6)

除非你有充分的理由不这样做,否则你应该真正使用rails提供的动作视图助手。

form helpers提供面向资源的方法,这些方法围绕特定模型对象创建表单和范围,但这不适合您的情况。

您想要的是使用通用form tag helpers,其中包含与任何特定模型或记录无关的表单方法的通用版本,例如:form_tagtext_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上没有nameid,因此我随意为其分配了字符"comment",这对案例有意义。

在访问用户输入的值方面,您只需按照其他任何形式执行操作,例如在您的控制器中,您只需访问params[:title]params[:comment]等。

答案 1 :(得分:1)

如果您使用form_tag helper,则可以按如下方式创建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

答案 2 :(得分:0)

当用户按下标题时使用这种方式怎么样:该框将突出显示它,为用户提供更多的灵活性。

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