从另一个表中的另一个列中获取列的值

时间:2013-06-07 18:47:52

标签: ruby-on-rails ruby-on-rails-3

我有一个具有列profile_id的User模型和一个具有主键列id的Profile模型,在profile的create方法运行完毕后,我希望profile_id列从profile模型中获取id的值。我知道我可以在after_filter方法中执行此操作,但是我应该在方法中写什么?

1 个答案:

答案 0 :(得分:1)

如果配置文件belongs_to用户和用户has_one配置文件de外键应该在配置文件模型中

所以,个人资料模型有user_id字段

在个人资料的创建方法中你可以做这样的事情

  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