Я создаю модель соединения Пригласить для has_many через отношения с Party и Guest, но я получаю пустые параметры [: party_id]. Пользователь вошел в систему как гость, и гость может видеть весь список участников, а гость может щелкнуть отдельную группу, и есть ссылка для присоединения к группе. Когда гость нажимает «Присоединиться к этой вечеринке», он переходит в «/ party / 2 / invites / new», и у меня есть форма, которую гость может заполнить. Я застреваю, когда гость отправляет форму. URL-адрес изменился на «/ party / 2 / invites», но я все еще вижу представление формы, и после обновления страницы отображается страница индекса приглашения.
Я помещаю binding.pry в invites # create и набираю params, я вижу party_is "". и я вижу "commit" => "Join!", "controller" => "invites", "action" => "create", "party_id" => "3"} разрешено: false>.
def new
@invite = Invite.new
@party_id = params[:party_id]
end
def create
@invite = Invite.new(invite_params)
binding.pry
if @invite.save
redirect_to guest_invites_path(current_user)
else
@party = Party.find(params[:party_id])
render :new
end
end
private
def invite_params
params.require(:invite).permit(:add_on, :rsvp, :guest, :party_id)
end
<%= form_with model: @invite, url: [@party, @invite], local: true do |f| %>
<%= f.label :add_on, "Add On" %>
<%= f.select :add_on, [1, 2, 3, 4], :prompt => 'Select One' %><br>
<%= f.label :rsvp, "RSVP" %>
<%= f.select :rsvp, [['Yes', true], ['No', false]], :include_blank => true %>
<%= f.hidden_field :party_id, :value => @party_id %>
<%= f.submit "Join!" %>
<% end %>
class Invite < ApplicationRecord
belongs_to :party
belongs_to :guest
validates :add_on, :rsvp, presence: true
accepts_nested_attributes_for :guest, :party
end
[4] pry (#)> поднять params.inspect RuntimeError: "68nwEzR31GS2mcJGq9WhUrP0sp9zSjZENqY4 / iosH8sn0zHRxz + PRXXWsQVJDGrs" 1/1 "" C1 + "=" 1=> "true", "party_id" => ""} разрешено: false>, "commit" => "Join!", "controller" => "invites", "action" => "create", "party_id"=> "3"} разрешено: false> from (pry): 4: в `create '