У меня проблема с формой с вложенным ресурсом. Модель данных легко:Форма с вложенным ресурсом: не поддерживает связь
class Event < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
has_many :event_contents
end
class EventContent < ActiveRecord::Base
belongs_to :event
end
Моя форма:
= simple_form_for([:admin, @event, @event.event_contents.new], remote: true) do |f|
.chat-form
.input-cont
= f.input :content, label: false, input_html: { class: 'form-control' }
.btn-cont
%span.arrow
= f.submit 'invia', class: 'btn blue icn-only'
Контроллер:
class Admin::EventContentsController < AdminController
def create
@event_content = EventContent.new event_content_params
@event_content.user_id = current_user.id if current_user
if @event_content.save
respond_to do |format|
format.js { render :nothing => true }
end
else
end
end
private
def event_content_params
params.require(:event_content).permit(
:content,
:event_id,
:user_id
)
end
end
Когда я отправить почту в Params вместо event_id У меня есть событие «тихоход "
pry(#<Admin::EventContentsController>)> params
=> {"utf8"=>"✓", "event_content"=>{"content"=>"uhm"}, "commit"=>"invia", "action"=>"create", "controller"=>"admin/event_contents", "event_id"=>"test-test-test"}
Запись является созданный в db, но event_id равен нулю, поэтому связь нарушена. Почему вместо event_id у меня есть событие slug ???
Update
Вопрос был контроллер:
def create
@event = Event.find params[:event_id]
@event_content = @event.event_contents.build event_content_params
@event_content.user_id = current_user.id if current_user
if @event_content.save
respond_to do |format|
format.js
end
else
end
end
Найдено вопрос ... –