Ruby on rails 如何将我的关联id插入到

Ruby on rails 如何将我的关联id插入到,ruby-on-rails,ruby-on-rails-5,associations,simple-form-for,Ruby On Rails,Ruby On Rails 5,Associations,Simple Form For,我有一个属于不同模型的模型(游戏属于场地和组织者),但当我填写表格创建游戏时,我的创建方法没有赶上场地参考 class Game < ApplicationRecord belongs_to :organiser belongs_to :field end class Organiser < ApplicationRecord has_many :games, dependent: :destroy end class Field < ApplicationRecor

我有一个属于不同模型的模型(游戏属于场地和组织者),但当我填写表格创建游戏时,我的创建方法没有赶上场地参考

class Game < ApplicationRecord
 belongs_to :organiser
 belongs_to :field
end

class Organiser < ApplicationRecord
 has_many :games, dependent: :destroy
end

class Field < ApplicationRecord
 has_many :games, dependent: :destroy
end
课堂游戏
控制器

class GamesController < ApplicationController
 before_action :set_game, only: [:show, :edit, :update, :destroy]

 def new
  @organiser = Organiser.find(params[:organiser_id])
  @game = Game.new
 end

 def create
  @game = Game.new(game_params)
  organiser_id = current_organiser.id
  @organiser = Organiser.find(organiser_id)
  @game.organiser = @organiser
  @game.save
  redirect_to organiser_games_path(@organiser)
 end

 def edit
  organiser_id = current_organiser.id
  @organiser = Organiser.find(params[:organiser_id])
 end

 def update
  organiser_id = current_organiser.id
  @organiser = Organiser.find(organiser_id)
  @game.update(game_params)
  redirect_to organiser_games_path(@organiser)
end

private
def game_params
 params.require(:game).permit(:field_id, :total_players)
end

def set_game
 @game = Game.find(params[:id])
end
class GamesController
_新建和编辑视图的表格地块

<%= simple_form_for [@organiser, @game] do |f| %>
 <div class="form-inputs">
  <%= f.input :field_id, as: :select, collection: Field.all.collect(&:location) %>
  <%= f.input :total_players %>
 </div>

 <div class="form-actions">
  <%= f.button :submit, "Create", class: "btn btn-primary" %>
 </div>
<% end %>

我是一个初学者,如果你们能帮我提供一些基本的解决方案,帮助我理解复杂的部分,我将不胜感激


我没有收到任何消息,它看起来像是走到了谷底,但它没有

collection:Field.all.collect(&:location)

集合必须是一个具有关系id和显示值的数组。这里,您只收集每个字段的
位置

这段代码应该做到以下几点:

<%= f.input :field_id, as: :select, collection: Field.all.map { |field| [field.id, field.location] } %>


field.id
将是您的选择选项的值(目前没有值,因此无法工作),
field.location
将是您的选择选项的文本:

字段使用
关联
。结账