我有一個嵌套資源的表單有問題。數據模型很簡單:嵌套資源的表單:不能保持關聯
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代替事項標識提交後我有事件「蛞蝓「
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 ???
更新
的問題是控制器:
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
發現問題... – 2014-09-24 07:44:01