0

我正在尝试将隐藏字段添加到form_with.

这是 3 次尝试(以及结果/错误消息)

第一次尝试

来自:https ://guides.rubyonrails.org/form_helpers.html

<%= hidden_​​field_tag(:parent_id, "5") %>

所以我尝试:

<%= 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, current_user.id %>
<%= f.submit "Send", 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}

即它包含一些不应该包含的额外标点符号(我认为它已被制成嵌套哈希或其他东西?)

4

2 回答 2

3

你有一些错误语法。如果要使用 :value 参数将值传递给隐藏字段。

<%= f.hidden_field :user_id, :value => current_user.id %>
于 2020-10-26T09:23:37.000 回答
1

这是有效的<%= f.hidden_field :user_id, value: current_user.id %>

IE

<%= 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是实际值(更改为您的值)

基于这个答案

于 2020-10-26T08:48:50.843 回答