Rails 为什么我的 ActiveRecord 的 foreign_key 设置了,死活不生效啊

lin_style · 2012年08月23日 · 最后由 Ddl1st 回复于 2012年08月23日 · 2674 次阅读
class CommonEvent < ActiveRecord::Base
    has_many :CommonEventsFollows

 #增加消息数
  def add_msg_count(count)
    self.messge_count+=count
  end
end


class CommonEventsFollow < ActiveRecord::Base
        belongs_to :CommonEvent, :foreign_key => "event_id"
end

然后查询:

@events = CommonEvent.joins(:CommonEventsFollows).select('id,title,message_count').order('id desc').page(params[:page]).per(30)  

生成的语句

Mysql2::Error: Unknown column 'common_events_follows.common_event_id' in 'on clause': SELECT  id,title,message_count FROM `common_events` INNER JOIN `common_events_follows` ON `common_events_follows`.`common_event_id` = `common_events`.`id` ORDER BY id desc LIMIT 30 OFFSET 0

common_event_id 不是已经制定成 :foreign_key => "event_id"了吗??

看起来木啥问题,但第一个参数可以用类名吗,不是用小写那种?

belongs_to :comm_event, :foreign_key => "event_id"

#1 楼 @hhuai 可以啊,只要和 joins 匹配就行了吧?

#1 楼 @hhuai 改成小写还是一样

has_many 也要指定 foreign_key

需要 登录 后方可回复, 如果你还没有账号请 注册新账号