Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 隐藏字段中的Rails参数赢得';t传递给控制器_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 隐藏字段中的Rails参数赢得';t传递给控制器

Ruby on rails 隐藏字段中的Rails参数赢得';t传递给控制器,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一个搜索控制器,在其中我从params获取客户端 def show @client = Client.find(params[:id]) @training_session = @client.training_sessions.new end 在我试图传递客户机id值的表单中: <%= form_for @training_session do |f| %> <% binding.pry %> <%= f.hidden_field :clie

我有一个搜索控制器,在其中我从params获取客户端

def show
  @client = Client.find(params[:id])
  @training_session = @client.training_sessions.new
end
在我试图传递客户机id值的表单中:

<%= form_for @training_session do |f| %>
  <% binding.pry %>
  <%= f.hidden_field :client_id, value: @client.id %>

为什么客户端id参数没有从表单传递?

首先查看视图生成的HTML表单。 但是,在控制器中,您应该将客户端id设置为:

training_session_params = params.require(:training_sessions).permit(:client_id)

client_id = training_session_params[:client_id]
因为表单是为TrainingSession模型而不是客户机模型创建的

training_session_params = params.require(:training_sessions).permit(:client_id)

client_id = training_session_params[:client_id]