我尝试使用has_many:通过this文档之后的关联。
我有3个模特
发布
class Post < ActiveRecord::Base
has_many :image_posts
has_many :images, :through => :image_posts
end
图像
class Image < ActiveRecord::Base
has_many :image_posts
has_many :posts, :through => :image_posts
end
和ImagePost
class ImagePost < ActiveRecord::Base
belongs_to :images
belongs_to :posts
end
当我尝试:
post = Post.last
post.images
我收到"undefined method "arel_table" for Images:Module"
错误。
什么是arel_table
以及如何解决此错误?
感谢。
答案 0 :(得分:3)
定义belongs_to关联时出现问题。它应该总是单一的
class ImagePost < ActiveRecord::Base
belongs_to :image
belongs_to :post
end
答案 1 :(得分:0)
由于帮手,我遇到了这个问题。
undefined method `arel_table' for Talent:Module
我的模块是talent/profile/header_helper.rb
module Talent
module Profile
module HeaderHelper
def display_experience(talent)
talent.years_of_experience.present? ? "#{talent.years_of_experience} #{t('.experience_years')}" : default_message
end
def default_message
"No especificado"
end
end
end
end
这个助手错了,因为人才是路线中的命名空间而不是嵌套资源。
我修正了将帮助程序更改为:
的问题 talent/profile/header_helper.rb
module Talent::Profile
module HeaderHelper
def display_experience(talent)
talent.years_of_experience.present? ? "#{talent.years_of_experience} #{t('.experience_years')}" : default_message
end
def default_message
"No especificado"
end
end
end
修复了问题。