簡體   English   中英

Rails-activeadmin模型和自定義模型之間的關系

[英]Rails - relation between activeadmin model and custom model

首先,我想知道是否有可能將我的模型之一與ActiveAdmin::CommentAdminUser模型相關聯

這是我的model

class AdminAction < ActiveRecord::Base
  has_one :comment, :class_name => "ActiveAdmin::Comment", :foreign_key => "admin_action_id"
  belongs_to :admin_user
end

這些關聯不會引發任何錯誤,只是返回`nil'

我在那兩個模型中添加了一個字段:

add_column :admin_users, :admin_action_id, :integer
add_column :active_admin_comments, :admin_action_id, :integer

這里的目標是獲取與我的新模型AdminAction相關的AdminUserComment ,當我這樣做時

a = AdminAction
a.admin_user 
# and 
a.comment

有用

有任何想法嗎 ?

你需要有一個admin_user_idadmin_actions表,使這個belongs_to協會工作。

class AdminAction < ActiveRecord::Base
  belongs_to :admin_user
end

此外, foreign_key參數是不必要的,因為它會從被推斷AdminAction類名。

class AdminAction < ActiveRecord::Base
  has_one :comment, :class_name => "ActiveAdmin::Comment", :foreign_key => "admin_action_id"
end

除此之外,您所擁有的應該能按預期工作。 如果不是,請提供更多有關您所看到或未看到的內容的詳細信息。

我正在使用User模型而不是AdminUser進行此工作。 這是我的代碼:

遷移

class CreateAdminAction < ActiveRecord::Migration
  def change
      create_table :admin_actions do |t|
      t.references :user, index: true
      t.timestamps
    end
  end
end

class AddFieldsForAdminAction < ActiveRecord::Migration
  def change
    add_column :active_admin_comments, :admin_action_id, :integer
  end
end

AdminAction

class AdminAction < ActiveRecord::Base
  has_one :comment, class_name: 'ActiveAdmin::Comment'
  belongs_to :user
end

另一個想法:如果您希望獲取單個AdminUserActiveAdmin::Comment記錄,我認為您可以像這樣直接獲取它們:

admin_comments = ActiveAdmin::Comment.find_for_resource_in_namespace(AdminUser.find(some_id), :admin)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM