相关疑难解决方法(0)

设计Rails应用程序:单表继承?

我已经研究了几天了,我知道有很多文章讨论单表继承和与Rails的多态关联.很多有用的资料来自2009年或之前,我想知道现在是否有更好的方法解决这个问题.

情况

该应用程序有几种不同的用户类型(即买方和卖方),每种类型都有一个配置文件.每种用户类型的配置文件确实不同,所以我目前排除了一个通用"配置文件"表的想法.

我目前的做法

这与解决方案相同.

class User < ActiveRecord::Base
  # authentication stuff
end

class UserType1 < User
  has_one :user_type_1_profile
end

class UserType2 < User
  has_one :user_type_2_profile
end

...

class UserTypeN < User
  has_one :user_type_n_profile
end
Run Code Online (Sandbox Code Playgroud)

根据我的研究,这是一种"混合模型"设计.

老实说,在这一点上,我不知道任何其他可行的解决方案.每当我看到类似的问题时,我都会看到多态关联的想法.有人可以详细说明多态关联在这种情况下如何工作?

有没有人有任何其他设计建议?

ruby-on-rails ruby-on-rails-3

8
推荐指数
1
解决办法
1005
查看次数

如何定义与工厂女孩的多态关联

我有一个用户和故事模型,他们都有评论.

我宣布以下模型如下:

class Comment
  belongs_to :commentable, polymorphic: true
  belongs_to :user
end

class User
end

class Story
end
Run Code Online (Sandbox Code Playgroud)

现在,我想声明一个具有FactoryGirl的注释对象,该对象属于与值得称赞的用户和用户相同的用户.

到目前为止,这是我的代码:

FactoryGirl.define do
  factory :user do
    sequence(:email) {|n| "person#{n}@exmaple.com"}
    sequence(:slug) {|n| "person#{n}"}
  end

  factory :comment do    
    occured_at { 5.hours.ago }
    user
    association :commentable, factory: :user
  end

end
Run Code Online (Sandbox Code Playgroud)

这里的问题是编写评论的用户和值得称道的用户不一样.

我为什么要解决这个问题?

很多TNX

ruby-on-rails-3 factory-bot

6
推荐指数
2
解决办法
4800
查看次数