用户has_many :代码has_many :赎回
代码belongs_to :用户has_many :赎回
赎回用户:代码belongs_to : has_one
赎回模型:
class Redemption < ActiveRecord::Base
has_one :code
belongs_to :user
validates :code_id, :presence => true
validates :user_id, :presence => true
after_create :increment_points
def increment_points
self.code.user.increment!(:points)
end 结束
当我创建一个新的赎回时,它返回以下错误:
PGError: ERROR: column codes.redemption_id does not exist
LINE 1: SELECT "codes".* FROM "codes" WHERE "codes"."redemption_id...
^
: SELECT "codes".* FROM "codes" WHERE "codes"."redemption_id" = 17 LIMIT 1我的关联有问题吗?我已经把它画出来了,相信我可以回溯到协会赎回->代码->用户
这个问题的一个警告是,赎回用户不是我试图增加积分的用户。代码是由一个用户创建的,这就是我试图更新的用户……
有什么想法?
发布于 2012-01-22 05:50:38
has_many/one和belongs_to需要一起使用。当您声明has_one : redemption_id时,Rails希望您在Code表上放置一个代码,并在belongs_to上声明相应的代码。
https://stackoverflow.com/questions/8956785
复制相似问题