【问题标题】:Adding a country tag separate from acts as taggable list添加与作为可标记列表分开的国家/地区标签
【发布时间】:2013-11-19 14:56:32
【问题描述】:

我的目标是找到一种方法,在提交表单中添加一个新字段,以收集图片来自哪个国家/地区。我想让国家/地区可搜索,就像在使用acts-as-taggable-on gem 时任何标签都可以指向包含该标签的项目一样。我在 10 月初尝试https://github.com/harrisongill/whatyoutheat/commits/master 时做了一些非常非常错误的尝试。

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

任何帮助将不胜感激。我对涉及作为可标记的行为或其他任何事情持开放态度。

【问题讨论】:

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


    【解决方案1】:

    简单易懂。看看你的代码,没什么可做的。

    首先,您需要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>
    

    【讨论】:

    • 非常感谢。然而,似乎最后一步打破了它,&lt;p&gt;Tags: &lt;%= raw @pin.tag_list.map { |t| link_to t, tag_path(t) }.join(', ') %&gt;&lt;/p&gt; 是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    相关资源
    最近更新 更多