ruby-on-rails - 如何向 form_with 添加隐藏字段?
问题描述
我正在尝试将隐藏字段添加到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 %>
第二次尝试
示例: 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}
即它包含一些不应该包含的额外标点符号(我认为它已被制成嵌套哈希或其他东西?)
解决方案
你有一些错误语法。如果要使用 :value 参数将值传递给隐藏字段。
<%= f.hidden_field :user_id, :value => current_user.id %>
推荐阅读
- android - 在 android recyclerview 中一次只捕捉一个项目而不是更多
- linux - 尝试在 Ubuntu 18.04 上为 AWS EC2 安装 PHP 时出错
- python - 无法使用 Python 3.7 和 Anaconda 创建 VirtualEnv - 没有这样的文件或目录:site.py
- c# - 静态方法列表
未找到属性 - node.js - 如何在 Shipit.js 上设置密码
- razor-pages - VS 2017 .NET Core 2.2 Razor Pages Project 失去了 Scaffold 的能力
- javascript - getParameter 使用 Fetch API 返回 null
- python - 如何限制 Pygame 角色的移动?
- javascript - parseInt() 和 Number.isInteger() 在以下 Javascript 数组场景中的功效差异?
- list - 如果全部匹配,如何比较列表的值并返回 true?