我一直在完成本教程:http://tutorials.jumpstartlab.com/projects/blogger.html
起身于I3 - 标记
这是我收到的错误:
undefined method `tag_list' for #<Article:0x007f87bceb23a0>
这是我的表单中导致错误的部分:
<p>
<%= f.label :tag_list %><br />
<%= f.text_field :tag_list %>
</p>
这是我的文章.rb
class Article < ActiveRecord::Base
attr_accessible :title, :body, :tag_list, :image
has_many :comments
has_many :taggings
has_many :tags, through: :taggings
has_attached_file :image
def tag_list=(tags_string)
self.taggings.destroy_all
tag_names = tags_string.split(",").collect{|s| s.strip.downcase}.uniq
tag_names.each do |tag_name|
tag = Tag.find_or_create_by_name(tag_name)
tagging = self.taggings.new
tagging.tag_id = tag.id
end
end
end
我的猜测是它不喜欢def tag_list=(tags_string)
,但这就是它在教程中的编写方式。如果您需要更多信息,请告诉我,谢谢!
答案 0 :(得分:2)
根据您使用的教程,tag_list
不是模型字段,而是您应该添加到模型的方法:
def tag_list
self.tags.map(&:name).join(', ')
end
答案 1 :(得分:0)
这是正常的:tag_list不是模型的列,并且tag_list
方法不存在。你必须定义
def tag_list
self.taggings
end
或者
def tag_list
self.taggings.map(&:name)
end
或类似的东西。