如何解决如何向form_with添加隐藏字段? 第一次尝试第二次尝试第三次尝试
我正在尝试向form_with
添加隐藏字段。
这里有3次尝试(以及结果/错误消息)
第一次尝试
来自:https://guides.rubyonrails.org/form_helpers.html
所以我尝试:
<%= form_with(model: @message,method: :post) do |f| %>
<%= f.label :body %>
<%= f.text_area :body %>
<%= f.hidden_field_tag :user_id,current_user.id %>
<%= f.submit "Send",class: "btn btn-primary" %>
<% end %>
第二次尝试
来自:https://api.rubyonrails.org/v6.0.3/classes/ActionView/Helpers/FormHelper.html#method-i-hidden_field
示例:hidden_field(:signup,:pass_confirm)
所以我尝试
<%= f.label :body %>
<%= f.text_area :body %>
<%= f.hidden_field :user_id,class: "btn btn-primary" %>
<% end %>
但是
第三次尝试
这比其他两次尝试都更进一步,因为至少显示视图加载而不是出错。
<%= form_with(model: @message,method: :post) do |f| %>
<%= f.label :body %>
<%= f.text_area :body %>
<%= f.hidden_field user_id: current_user.id %>
<%= f.submit "Send",class: "btn btn-primary" %>
<% end %>
但是提交的参数是
Unpermitted parameter: :{:user_id=>21}
即它包含一些不应包含的标点符号(我认为它已被制成嵌套的哈希或其他内容?)
解决方法
您有一些错误语法。如果您想使用:value参数将值传递给隐藏字段。
<%= f.hidden_field :user_id,:value => current_user.id %>
,
这是有效的<%= f.hidden_field :user_id,value: current_user.id %>
即
<%= form_with(model: @message,method: :post) do |f| %>
<%= f.label :body %>
<%= f.text_area :body %>
<%= f.hidden_field :user_id,value: current_user.id %>
<%= f.submit "Send",class: "btn btn-primary" %>
<% end %>
哪里
-
:user_id
是参数的名称(更改为参数名称) -
value:
只是在告诉form_with
值是下一个值(即,请勿更改) -
current_user.id
是实际值(更改为您的值)
基于this答案
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。