我有2个模型:User
和Game
。我需要从这些模型(game_id
和user_id
)创建包含fk的模型。这意味着User
可以有多个游戏。
我生成了这个模型:
class CreateUserGames < ActiveRecord::Migration[5.1]
def change
create_table :user_games do |t|
t.references :game, foreign_key: true
t.references :user, foreign_key: true
t.timestamps
end
end
end
所以,我需要添加按钮的主要问题&#39; Take&#39; (或类似的那样)并且如果用户登录,则在该表中创建具有当前游戏的id和当前用户的id的记录。 我现在该怎么办?
答案 0 :(得分:0)
您可以将link_to与post方法一起使用,并创建一个操作来处理它。例如:
link_to "Take", 'your_action_url', method: post, game_id: 'your_game_id'
另外,请记住在route.rb
上创建操作网址:
match "your_action_url" => "your_controller#take_game", via: [:post]
然后,您可以使用以下内容创建操作:
def take_game
user_id = current_user.id #(if you're using devise)
if UserGame.create!(game_id: params[:game_id], user_id: user_id)
#handle success and return to the view
else
#handle error
end
end
猜猜这是一个很好的方法。希望这有帮助!