2014-02-22 27 views
0

我有一個驗證問題,至少有一個複選框被點擊之前,用戶可以繼續。我查看看起來喜歡這樣的:check_box_tag驗證form_tag

查看:

<%= form_tag("/categories/", :method => "post") do%> 
<% @categories.each do |category| %> 
    <div class="checkbox"> 
    <li><%= check_box_tag "categories[]", category.id %> <%= category.name %></li> 

    </div>  

<%end%> 
<%= submit_tag "Weiter", class: "btn btn-success btn-lg" %> 
class Category < ActiveRecord::Base 
has_and_belongs_to_many :users 
has_and_belongs_to_many :books 
end 

那麼,什麼情況是,用戶registeres和獲取屏幕與這類型模型中的所有可用類別。然後他檢查並點擊繼續。關於帖子類別與用戶關聯。但我如何驗證用戶至少選擇了1個類別。如果我做這樣的事情它不起作用:

validates_acceptance_of :categories, 
:message => "Please take at least one category", :accept => true 
+0

能否請您分享模式的詳細信息。 –

回答

0

你會想驗證類別的存在。

validates :categories, presence: true 
+0

不幸的是它不起作用。 – user2448801

0

您可以編寫自己的驗證

validate :at_least_one_category_selected 

    private 

    def at_least_one_category_selected 
    if self.categories.blank? 
     self.errors.add(:categories, "You must select at least one category.") 
    end 
    end