반응형
Ruby on Rails에서 has_many 항목 수를 확인합니다.
사용자는 스 니펫에 태그를 추가 할 수 있습니다.
class Snippet < ActiveRecord::Base
# Relationships
has_many :taggings
has_many :tags, :through => :taggings
belongs_to :closing_reason
end
태그 수의 유효성을 검사하고 싶습니다. 최소 1 개, 최대 6 개입니다. 어떻게해야합니까? 감사.
언제든지 사용자 지정 유효성 검사를 만들 수 있습니다 .
같은 것
validate :validate_tags
def validate_tags
errors.add(:tags, "too much") if tags.size > 5
end
이 SO 게시물 에서 @SooDesuNe 가 더 나은 솔루션을 제공했습니다.
validates :tags, length: { minimum: 1, maximum: 6 }
을 사용하여 유효성을 검사 할 수 있다고 생각합니다 .reject(&:marked_for_destruction?).length
.
이건 어때?
class User < ActiveRecord::Base
has_many :groups do
def length
reject(&:marked_for_destruction?).length
end
end
accepts_nested_attributes_for :groups, allow_destroy: true
validates :groups, length: { maximum: 5 }
end
아니면 이거.
class User < ActiveRecord::Base
has_many :groups
accepts_nested_attributes_for :groups, allow_destroy: true
GROUPS_MAX_LENGTH = 5
validate legth_of_groups
def length_of_groups
groups_length = 0
if groups.exists?
groups_length = groups.reject(&:marked_for_destruction?).length
end
errors.add(:groups, 'too many') if groups_length > GROUPS_MAX_LENGTH
end
end
그런 다음 명령 할 수 있습니다.
@user.assign_attributes(params[:user])
@user.valid?
읽어 주셔서 감사합니다.
참조 :
http://homeonrails.com/2012/10/validating-nested-associations-in-rails/ http://qiita.com/asukiaaa/items/4797ce44c3ba7bd7a51f
참고 URL : https://stackoverflow.com/questions/4836897/validate-the-number-of-has-many-items-in-ruby-on-rails
반응형
'program tip' 카테고리의 다른 글
SQLite“INSERT OR REPLACE INTO”vs.“UPDATE… WHERE” (0) | 2020.12.11 |
---|---|
printf ()를 사용하는 소수점 두 자리 (0) | 2020.12.11 |
ajax 게시물에 대해 수동으로 MVC 3 클라이언트 측 유효성 검사 호출 (0) | 2020.12.11 |
addChildViewController를 호출 한 후 addSubview를 호출해야합니까? (0) | 2020.12.11 |
오늘 시간을 자정으로 설정하는 방법은 무엇입니까? (0) | 2020.12.11 |