Ruby on rails 隐藏字段未更新rails应用程序中的sqllite表

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?

我是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? %>
<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