0

我有一个用户模型具有列 profile_id 和一个具有主键列 id 的 Profile 模型,在 profile 的 create 方法完成运行后,我希望 profile_id 列从 profile 模型中获取 id 的值。我知道我可以在 after_filter 方法中做到这一点,但是我应该在方法中写什么呢?

4

1 回答 1

1

如果配置文件 belongs_to User 和 User has_one profile de 外键应该在 Profile 模型中

所以,配置文件模型有 user_id 字段

在 profile 的 create 方法中,你可以做这样的事情

  def create
    @profile = Profile.new(params[:profile])
    @profile.user_id = current_user.id
    respond_to do |format|
      if @profile.save
        format.html { redirect_to @profile , notice: 'profile was successfully created.' }
      else
        format.html { render action: "new" }
      end
    end
  end

或者不是这个:

 @profile.user_id = current_user.id

你可以

 @profile.user_id = params[:user_id]

如果您通过参数发送 id

然后你可以通过这样的关系访问它:

@profile.user.name @profile.user.email 或 current_user.profile.name

于 2013-06-07T19:13:20.427 回答