Ruby on rails 隐藏字段未更新rails应用程序中的sqllite表
我是rails的noob,我无法理解为什么我在表单中的隐藏字段没有在表中更新。我的表单如下所示:Ruby on rails 隐藏字段未更新rails应用程序中的sqllite表,ruby-on-rails,sqlite,Ruby On Rails,Sqlite,我是rails的noob,我无法理解为什么我在表单中的隐藏字段没有在表中更新。我的表单如下所示: <%= form_for(@cricket_club_advert) do |f| %> <% current_user_id = current_user.id %> <%= hidden_field_tag "user_id", current_user_id %> <% if @cricket_club_advert.errors.any?
<%= form_for(@cricket_club_advert) do |f| %>
<% current_user_id = current_user.id %>
<%= hidden_field_tag "user_id", current_user_id %>
<% if @cricket_club_advert.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@cricket_club_advert.errors.count, "error") %> prohibited this cricket_club_advert from being saved:</h2>
<ul>
<% @cricket_club_advert.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="row">
<div class="large-6 columns">
<%= f.label "Title" %>
<%= f.text_field :title %>
</div>
</div>
<div class="row">
<div class="large-6 columns">
<%= f.label "Type of Player Required" %>
<%= f.text_field :player_type %>
</div>
</div>
但是,当我创建或编辑新记录时,字段不会更新,也不会创建错误
如果我将表单中的字段设置为id为user_id的文本_字段,则效果良好
提前感谢错误的解决方案 错误在于,您正在使用
表单\u for
,但调用隐藏的\u字段\u标记而不是f。隐藏的\u字段
,表单发送的是:user\u id
,而不是[:cricket\u club\u广告][:user\u id]
只要改变一下:
<%= hidden_field_tag "user_id", current_user_id %>
这样可以确保用户只能在其姓名下创建cricket\u club\u广告
<%= hidden_field_tag "user_id", current_user_id %>
<%= f.hidden_field :user_id, current_user_id %>
# I assume an user has_many :cricket_club_adverts
def create
cricket_club_advert = current_user.cricket_club_adverts.build(ricket_club_advert_params)
if cricket_club_advert.save
# ...
else
# ...
end
end