【发布时间】:2012-08-22 20:47:57
【问题描述】:
我正在尝试创建一个简单的关系,但模型位于 Rails 3.2 下的子目录中
我有一个 User 类,每个用户都有一个电子邮件订阅。因为会有其他类型的订阅(也填充添加到用户)我把它们放在一个子目录中。 (我的用户恰好来自 Devise,但我怀疑这无关紧要。)
这是代码
在model/user.rb
class User < ActiveRecord::Base
has_one :email_sub
before_create :build_email_subscription
private
def build_email_subscription
Subscription::EmailSub.create(:is_subscribed => true, :user_id => self.id)
true
end
end
请注意,我还创建了一种添加默认订阅的方法。
在model/subscriptions/email_sub.rb
class Subscriptions::EmailSub < ActiveRecord::Base
belongs_to :user
end
除了创建两个类的迁移之外,我还为关系创建了以下迁移。
class AddSubscriptionToUser < ActiveRecord::Migration
def change_table :subscriptions_email_sub do |t|
t.referneces :users
end
end
但是,这似乎不起作用。它似乎没有生成user_id 列。
【问题讨论】:
-
注意:引用拼写错误。我也会尝试使用 add_column subscriptions_email_sub user_id:integer
标签: ruby-on-rails-3 migration belongs-to subdirectory has-one