作为可标记的行为 - 将标记添加到模型

时间:2015-03-15 03:19:07

标签: ruby-on-rails tagging nomethoderror

我想在模型中添加一堆预定义标签。

我已将它添加到控制器中的参数:

def photo_params
  params.require(:photo).permit(:image,:title, :description, :styles_list)
end

我还包括:

act_as_taggable_on :styles

现在我只是想添加标签但是在我的控制台中我一直收到以下错误: 试过Photo.styles_list.add

得到

NoMethodError: undefined method `styles_list' for #<Class:0x007fa9ee74aac8>

然后我按照文档https://github.com/mbleigh/acts-as-taggable-on/wiki/Add-Tags

中的说明尝试了styles_list.add

但我仍然得到同样的错误,我做错了什么?

1 个答案:

答案 0 :(得分:0)

Photo.styles_list.add正在尝试调用styles_list类上的Photo方法。那是不对的。照片对象上提供了styles_list方法。

按如下方式创建/查找照片对象:

@photo = Photo.new

@photo = Photo.find(params[:id])

然后可以使用以下内容标记样式:

@photo.styles_list.add("awesome")

请参阅https://github.com/mbleigh/acts-as-taggable-on#usage以更好地了解如何使用宝石。