2012-11-18 54 views
0

我在rails中使用simple_form來創建特定事件。要創建新事件,您需要以用戶身份登錄。表單將要求用戶輸入事件名稱,開始日期和結束日期。當用戶單擊提交按鈕時,我希望表單自動更新數據庫中的屬性user_id。點擊提交表單後,Rails自動更新數據庫屬性

現在在數據庫中,事件表中的user_id字段始終設置爲空。不過,我需要這個屬性被設置爲:

events.user_id = current_user.id

這裏是我的事件的詳細信息表:enter image description here

注:我手動輸入的值,在此數據庫USER_ID。

問題:如何在用戶點擊提交後更新數據庫屬性?或者是否有一種默認的方式,在創建新事件時始終設置user_id?

這裏是代碼的new.html.erb事件在事件查看器

<%= simple_form_for(@event) do |f| %> 
    <%= f.error_notification %> 

    <div class="form-inputs"> 
    <%= f.input :name %> 
    <%= f.input :start_at %> 
    <%= f.input :end_at %> 
    </div> 

    <div class="form-actions"> 
    <%= f.button :submit %> 
    </div> 
<% end %> 

回答

1

在你創建方法,添加您

events.user_id = current_user.id 

之前保存。

例如如果您使用@event = Event.new(params[:event]) 創建事件(在def create方法中),則執行@link.user_id = current_user.id on the next line
您可能可以執行@link.user = current_user,並且導軌會將id映射出去。

+0

謝謝!這工作。我在('def create method')中添加了'@event.user_id = current_user.id' – Rahul