0

Rails 新手,我正在尝试使用用户模型和事件模型之间的关联。一个用户可以创建许多事件。我目前正在为我的用户模型使用设计。谁能指出我正确的方向,以便我可以将 user_id 存储在当前登录用户的事件模型中,我当前的代码如下:

//////事件控制器创建方法:

def create

    @user = User.find(params[:user_id])
    @event = @user.events.create(params[:event].permit(:name, :date, :time, :description, :dresscode, :price, :avatar, :avatar2, :avatar3, :avatar4, :user_id))

    if @event.save
      redirect_to @event
    else
      render 'new'
    end
  end
4

2 回答 2

3

使用这样的构建方法

@event = current_user.events.build(params[:event])
于 2013-10-29T20:55:34.853 回答
0
class EventsController < ApplicationController
  def create
    @event = current_user.events.build(event_params)

    if @event.save
      redirect_to @event
    else
      render 'new'
    end
  end

  private

  def event_params
    params.require(:event).permit(:name, :date, :time, :description, :dresscode, :price, :avatar, :avatar2, :avatar3, :avatar4, :user_id))
  end
end

提示:

  1. Devise 为您提供了一个current_user返回已登录用户的方法。
  2. 您可以.build通过关联进行记录,而无需实际保存它们(如)(有关由关联.create生成的方法的参考,请参阅Rails API 文档)。has_many
  3. 习惯上将 提取到可以在和操作event_params中重用的方法中。createupdate

希望这可以帮助!

于 2013-10-29T21:05:44.897 回答