添加国家标记与作为可标记列表的行为分开

时间:2013-11-19 14:56:33

标签: ruby-on-rails ruby-on-rails-3.2 acts-as-taggable-on

我的目标是找到一种在提交表单中添加新字段的方法,以收集图片所在的国家/地区。我希望使用act-as-taggable-on gem时,任何标记可以使用包含该标记的项目导致页面的相同方式使该国家/地区可搜索。我在10月初尝试https://github.com/harrisongill/whatyoutheat/commits/master时做了一些非常非常误导的尝试。

理想情况下,我希望它看起来像你去http://community.whatyoutheat.com/pins/10这样的页面时,不仅有描述,作者和标签之类的行,而且还有一个类似于标签工作原理的国家/地区

任何帮助将不胜感激。我对某些涉及行为的行为持开放态度等等。

1 个答案:

答案 0 :(得分:0)

容易腻。看看你的代码,没什么可做的。

首先,您需要country的虚拟属性,因为它是您的数据库中不存在的字段,据我所知,不需要。而且因为它是rails 3,你需要让它可以访问。接下来,您将在提交之前将国家/地区名称与标签列表合并。

就是这样。

步骤1 - 在模型中添加虚拟属性

attr_accessor :country

步骤2 - 在模型

中访问该属性
attr_accessible :description, :image, :image_remote_url, :tag_list, :country

步骤3 - 在控制器#create

中提交之前,将国家/地区名称附加到标签列表
params[:pin][:tag_list] = params[:pin][:tag_list] + ", " + params[:pin][:country]
params.delete :country
@pin = current_user.pins.new(params[:pin])

还要记住在Show中替换标签列表以创建指向标签的链接。

<p>Tags: <%= raw @pin.tag_list.map { |t| link_to t, tag_path(t) }.join(', ') %></p>