У меня есть event_log
, на котором я пытаюсь обновить статус при отправке формы для event
. Когда я пытаюсь передать его в форме, он создает event
, но в консоли отображается Unpermitted parameter: :event_log
. Соответствующий код приведен ниже. Если требуется какой-либо дополнительный код, пожалуйста, сообщите мне.
_event_accept_form.html.erb
<%= form_for :event, url: events_path do |f| %>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.hidden_field :title, :value => @event_logs.event.title %>
<%= f.hidden_field :description, :value => @event_logs.event.description %>
<%= f.hidden_field :start_time, :value => @event_logs.event.start_time %>
<%= f.hidden_field :end_time, :value => @event_logs.event.end_time %>
<%= f.hidden_field :sender_id, :value => @event_logs.user_id %>
<%= f.fields_for @event_logs do |event_log| %>
<%= event_log.hidden_field :status, :value => :event_accept %>
<% end %>
<%= f.submit 'Accept', class: 'btn btn-success' %>
<% end %>
event.rb
class Event < ApplicationRecord
belongs_to :user
validates_presence_of :title, :description, :start_time, :end_time, :user_id
has_many :event_logs, dependent: :destroy
accepts_nested_attributes_for :event_logs
end
event_controller.rb
...
def event_params
params.require(:event).permit(:title, :description, :start_time, :end_time, :user_id, :sender_id, { event_logs_attributes: [:id, :status] })
end
event_log_controller.rb
def show
@event = Event.new
@event_logs = EventLog.find(params[:id])
@invitee = User.find(@event_logs.invitee_id)
end
Ошибка на консоли
Started POST "/events" for 127.0.0.1 at 2019-01-27 18:37:25 -0600
Processing by EventsController#create as HTML
Parameters {"utf8"=> "✓"," authenticity_token" =>"BRqfTU2Rya8yKS//
Tp2zp6HV6RSD1b82w+5ng/ lzv15Hs/q35lDxNZtxy0yXBaSyPzKeExJpYjBV/DfmwfnK3w==",
"event"=>{"user_id"=>"4", "title"=>"another 2", "description"=>"ihihi",
"start_time"=>"2019-01-22 01:41:00 UTC", "end_time"=>"2019-01-22 03:41:00 UTC",
"sender_id"=>"2", "event_log"=>{"status"=>"event_accept"}}, "commit"=>"Accept"}
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1
ORDER BY "users"."id" ASC LIMIT $2 [["id", 4], ["LIMIT", 1]]
Unpermitted parameter: :event_log
Форма фактически вызывается в представлении event_log
:
<div class="btn-group">
<%= render "events/event_accept_form" %>
</div>