1

我現在所擁有的兩款車型(將會有更多的後來,爲此我使用一個Polymorhpic模型Rails 4如何保存Polymorhpic關係?

的Polymorhpic表被稱爲活動, 和模型具有這樣的:

belongs_to :eventable, :polymorphic => true 

然後中,用戶表,其中有許多事件:

has_many :events, :as => :eventable 

的用戶表是設計表,所以在創建活動時,我只是想通過用戶ID和類型活動:

def create 
    event_params[:eventable] = current_user 
    @event = Event.new(event_params) 
    if @event.save 
     redirect_to @event 
    else 
     render text: @event 
    end 
end 
private 
    def event_params 
     params.require(:event).permit(:name, :text, :start_date, :end_date, :eventable) 
    end 

事件被保存,但我不明白的eventable場充滿...

CURRENT_USER被定義,所以這沒有問題。

我應該通過params [:eventable_id]和params [:eventable_type]手冊嗎?

如果是這樣,哪種格式應該eventable_type,以便它將工作時,我得到的用戶事件?

回答

1

每當你叫event_params你正在建設一個新的哈希,你需要的地方把它作爲:

current_params = event_params 
current_params[:eventable] = current_user 
@event = Event.new(current_params) 
if @event.save 
    redirect_to @event 
else 
    render text: @event 
end 
+0

這是它!太好了,謝謝你,先生! –

1

我建議:

@event = current_user.build_event(event_params)