【问题标题】:Rails - model association for recursive user model relationshipRails - 递归用户模型关系的模型关联
【发布时间】:2013-09-27 02:38:48
【问题描述】:

在我的用户模型中,我有

  belongs_to :admin_creator, foreign_key: :created_by_user_id, class_name: "User"

在我的创建控制器操作中我有...

def create
    @user = User.new(user_create_params)
    @user.created_by_user_id = current_user.id
    @user.status_code = 'P' #set status code to pending

    begin
      @user.save!
      render json: "User #{@user.email} added", status: :created 
    rescue StandardError => e
      render json: @user.errors.full_messages, status: :unprocessable_entity 
    end

  end

如何将我的代码重铸为将模型关联用于将成为 admin_creator 的“current_user”?

调用创建操作时,current_user 是添加另一个(子)用户帐户的当前管理员用户。我想它会是... @user = current_user.users.build(user_create_params) 或类似的

【问题讨论】:

  • 没看懂你的问题,能详细点吗?
  • 更新了我的问题。见最后一段。

标签: ruby-on-rails ruby-on-rails-4 rails-models


【解决方案1】:

像这样将has_many 添加到User 模型中:

has_many :admin_children, foreign_key: :created_by_user_id, class_name: "User"

那么你可以这样做:

current_user.admin_children.create(user_create_params)

【讨论】:

  • 哇,好快!!像魅力一样工作。
  • 不是真正相关但与上述相同的来源 - 在这篇文章中,我问了一个关于保存模型数据时的最佳实践的问题:stackoverflow.com/questions/19042063/…
猜你喜欢
  • 1970-01-01
  • 2013-08-04
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多