加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用acts_as_taggable_on,我如何拥有最大数量

发布时间:2020-12-17 02:29:08 所属栏目:百科 来源:网络整理
导读:使用acts_as_taggable_on,我如何拥有最大数量的标签? 解决方法 我在Post模型中使用以下验证 class Post ActiveRecord::Base ... acts_as_taggable_on :categories ... validates_presence_of :category_list,:message = "Choose at least 1 category" valid
使用acts_as_taggable_on,我如何拥有最大数量的标签?

解决方法

我在Post模型中使用以下验证

class Post < ActiveRecord::Base
  ...
  acts_as_taggable_on :categories
  ...
  validates_presence_of :category_list,:message => "Choose at least 1 category"
  validates_size_of     :category_list,:maximum => 4,:message => '4 categories maximum'
  ...
end

正如Ryan Bate的教程中所见:

class PostssController < ApplicationController
  ..
  def update
    @post = current_user.posts.find(params[:id])
    params[:post][:category_list] ||= []
  end
  ..
end

分类选择部分:

<% Category.roots.each do |c| %>
        <ul>
            <li>
            <%= check_box_tag "post[category_list][]",c.id,@post.category_list.include?(c.id.to_s)%>
            <%= c.name %>
            </li>
        </ul>
<% end %>

顺便说一下,我使用catgeory_list作为类别ID的数组,因此Post category_list可能如下所示:

> p = Post.first
...
> p.category_list
["10","7","8"]
> p.category_list.map { |c| Category.find(c.to_i).name }
["Cats","Dogs","Plants"]

希望能帮助到你

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读