ruby-on-rails - 如何将我的关联 ID 插入简单的形式
问题描述
我有一个模型属于不同的模型(游戏属于领域和组织者),但是当我填写表格创建游戏时,我的创建方法没有赶上领域参考
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
_form 新视图和编辑视图的包裹
<%= 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 和显示值的数组。在这里,您只收集location
每个字段的值。
这段代码应该可以解决问题:
<%= f.input :field_id, as: :select, collection: Field.all.map { |field| [field.id, field.location] } %>
field.id
将是您的选择选项的值(目前,没有价值,因此它无法工作),并且field.location
将是您的选择选项的文本。:)
推荐阅读
- mongodb - 如何自动配置 mongodb 副本集
- python - 在 Windows 上安装 psycopg2 时出错
- python - 用python覆盖mongodb中的json文件
- mysql - 如何在sql中查找每个员工从开始日期开始的总工作时间?
- xcode - 架构 x86_64 的未定义符号:“_OBJC_CLASS_$_GeneratedPluginRegistrant”
- javascript - 香草 javascript 和 css 图像滑块无法正常工作
- android - 为什么在 altBeacon 库中使用区域时无法获得完整的 uuid?
- ruby - 在ruby中使用每个参数选项的多个输入来解析命令行参数
- python - 如何保存和加载缓存
- android - 在 RecyclerView 中配置 ItemTouchHelper 以使 Snackbar 被显示的另一个 Snackbar 解雇