У меня есть модели пользователей, игр и игроков, и на странице показа моей игры я пытаюсь создать игрока, который будет ассоциироваться как с текущим пользователем, так и с игрой.
Итак, я нахожусь на странице blah.com/game/1
(показать страницу игры с идентификатором 1) и хочу нажать кнопку, чтобы создать игрока.
На странице моей игры:
# I have @game here which is a reference to the game for this page
# can I use it here to fill in @player.game ?
<%= form_for(@player) do |f| %>
<%= f.submit "Create player for this game (join this game)" %>
<% end %>
Затем в методе создания моего PlayerController:
# PlayerController's create, called from Game's show page
def create
@terra_player = current_user.players.build() # approximation of how it works
if @terra_player.save
redirect_to @terra_player
else
render 'new'
end
end
Полагаю, мне нужно вручную указать аргумент для игры, но я не уверен, как получить ссылку на мою игру. Я полагаю, мне нужно будет ввести аргумент в контроллере создания:
@terra_player = current_user.players.build(:game => ???) # approximation of how it works
Или установите его на странице показа. Но я не уверен, как в любом случае.