Если команды и игроки будут добавлены с помощью отдельных форм:
Вы можете включить team_id в форму для нового игрока или вложить маршрут для игроков в сферу команд и вытащить team_id изURL-параметры, такие как params[:team_id]
.
Маршрут с вложенными игроками:
resources :teams do
resources :players
end
В представлении вашей команды / шоу (страница сведений о команде), Создать ссылку на игрока:
<%= link_to 'Create Player', new_team_player_path(@team) %>
В форме игроков:
<% form_for [@team, @player] do |f| %>
<!-- your form here -->
<%- end -%>
В контроллере игроков:
def new
@team = Team.find params[:team_id]
@player = Player.new
end
def create
@player = Player.new params[:player]
@player.team_id = params[:team_id] # => if just grabbing the id from the url params
if @player.save
# flash and redirect
else
# show form again
end
end
В противном случае см. Railscast о вложенных атрибутах, упомянутых @Antoine, для указания как новой команды, так и информации об игроке.одна форма.(Я думаю, что вы ищете, это первый вариант с двумя формами, но я мог бы быть далеко.)
Для получения дополнительной информации о маршрутизации вложенных ресурсов см. Руководство по маршрутизации Rails .Чтобы увидеть, какие маршруты доступны в вашем приложении, запустите rake routes
из командной строки в корне вашего приложения.