首先,我想知道是否有可能将我的一个模型与ActiveAdmin::Comment和AdminUser模型相关联
这是我的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这里的目标是将AdminUser和Comment关联到我的新模型AdminAction,当我这样做时
a = AdminAction
a.admin_user
# and
a.comment它起作用了
有什么想法吗?
发布于 2017-01-24 20:17:46
您需要在admin_actions表中有一个admin_user_id,才能使此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
endAdminAction 类
class AdminAction < ActiveRecord::Base
has_one :comment, class_name: 'ActiveAdmin::Comment'
belongs_to :user
end另一种想法是:如果您希望获取单个AdminUser的ActiveAdmin::Comment记录,我认为您可以像这样直接获取它们:
admin_comments = ActiveAdmin::Comment.find_for_resource_in_namespace(AdminUser.find(some_id), :admin)https://stackoverflow.com/questions/41825291
复制相似问题