我在视图中使用了以下表格
<%= form_for (@account) do |f| %>
<%= f.label :comments,"Comments" %>
<%=f.text_area :comments %>
<%= f.submit "Confirm",:name=>"conf" %>
<%= f.submit "Reject" %>
<% end %>
当我提交表单时,我在更新数据库之前在日志中获得以下哈希
Started PATCH "/accounts/12" for 127.0.0.1 at 2015-08-13 21:31:18 +0200
Processing by UseractionsController#answer_with_comments as HTML
Parameters: {"utf8"=>"✓", "account"=>{"comments"=>"mycomments"}, "conf"=>"Confirm", "id"=>"12"}
我正在尝试访问控制器中注释文本区域中的输入。我试过了
params[:account][:comments]
但它似乎不起作用。任何人都可以给我合适的语法吗?感谢。
修改
这是我的控制器代码。现在if循环返回false并且没有任何内容添加到数据库中,即使提交了某些内容(&#34; mycomments&#34;参见上面的param嵌套哈希)
if params[:bankaccount][:comments]
@bankaccount.update_attribute(:comments, params[:bankaccount][:comments])
end
答案 0 :(得分:0)
它只是您视图的适当语法。它假定您的评论模型中包含内容字段。
section.backstage-header
您还必须在帐户模型中声明嵌套属性,并且您的参数散列应该不同。
答案 1 :(得分:0)
由于您将强参数作为标记提及,因此您可能希望以不同的方式构建它。
private
def account_params
#the permit method might need to be altered depending on your model and view
params.require(:account).permit(:comments)
end
您可以在控制器中的其他位置执行此操作:
@bankaccount.update_attributes(account_params)
请阅读:http://edgeguides.rubyonrails.org/action_controller_overview.html#strong-parameters