Ruby On Rails:了解表单提交

时间:2015-12-28 16:51:21

标签: ruby-on-rails ruby forms

我之前一直在研究Spring MVC,所以想到了解ROR的变化。

我正在使用CodeAcademy上的教程,其中我对以下表单提交机制感到有些困惑。

所以这是一个样本表格。

<%= form_for(@message) do |f| %>  
  <div class="field"> 
    <%= f.label :message %><br> 
    <%= f.text_area :content %> 
  </div> 
  <div class="actions"> 
    <%= f.submit "Create" %> 
  </div> 
<% end %>

Controller中相应的动作处理程序如下:

def create
 @message = Message.new(message_params)
 if @message.save
   redirect_to '/messages'
 else
   render 'new'
 end
end

private 
def message_params 
  params.require(:message).permit(:content) 
end

我对以下行params.require(:message).permit(:content)感到困惑 由于:message是标签字段,因此它应始终具有值。因此.required(:message)应始终为true,方法message_params应始终返回文本框的值。正确的吗?

我不确定我是否完全理解它。有人可以清楚地解释一下。

1 个答案:

答案 0 :(得分:0)

message只是content字段的标签。

require(:message)是表单的参数哈希值,permit(:content)是您允许的content参数。所以你的参数哈希看起来像这样:

{
  message: {
    content: "Your content here..."
  }
}

此技术称为&#34; Strong Parameters&#34;。