我之前一直在研究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
应始终返回文本框的值。正确的吗?
我不确定我是否完全理解它。有人可以清楚地解释一下。
答案 0 :(得分:0)
message
只是content
字段的标签。
require(:message)
是表单的参数哈希值,permit(:content)
是您允许的content
参数。所以你的参数哈希看起来像这样:
{
message: {
content: "Your content here..."
}
}
此技术称为&#34; Strong Parameters&#34;。