0
문제 - 정의되지 않은 메서드`- '', 어린이 책"에 대한 : 문자열정의되지 않은 방법은`- ''책, 어린이를위한 ": 문자열
'acts_as_taggable_on_steroids은'지금 몇 시간 동안 유지되지 않았습니다. 최근까지도 잘 작동했습니다. > 정의되지 않은 메서드`- - 나는 업데이트 태그를 만들거나하려고 지금 때, 나는 오류 메시지 '에 대한 "책, 어린이": 문자열
--- Codings ----
1. module ActiveRecord #:nodoc:
2. module Acts #:nodoc:
3. module Taggable #:nodoc:
4. def self.included(base)
5. base.extend(ClassMethods)
6. end
7. module ClassMethods
8. def acts_as_taggable
9. has_many :taggings, :as => :taggable, :dependent => :destroy
10. has_many :tags, :through => :taggings
11. before_save :save_cached_tag_list
12. after_create :save_tags
13. after_update :save_tags
14. include ActiveRecord::Acts::Taggable::InstanceMethods
15. extend ActiveRecord::Acts::Taggable::SingletonMethods
16. alias_method_chain :reload, :tag_list
acts_as_taggable.rb : :::::::::::::::::::::::
17. def save_tags
18. return unless @tag_list
19. new_tag_names = @tag_list - tags.map(&:name)
20. old_tags = tags.reject { |tag| @tag_list.include?(tag.name) }
21. self.class.transaction do
22. if old_tags.any?
23. taggings.find(:all, :conditions => ["tag_id IN (?)",
24. old_tags.map(&:id)]).each(&:destroy)
25. taggings.reset
26. end
27. new_tag_names.each do |new_tag_name|
28. tags << Tag.find_or_create_by_name(new_tag_name)
29. end
30. end
31. true
32. end
33. end
참고 : 라인 (19)이 문제가 발생합니다!
tag.rb
1. class Tag < ActiveRecord::Base
2. attr_accessible :name
3. has_many :taggings, :dependent => :destroy
4. validates :name, :presence=>true
5. validates_uniqueness_of :name
6. def self.find_or_create_by_name(name)
7. Tag.where(:name=>name).first_or_create do |tag|
8. tag.name = name
9. end
10. end
어떤 도움 당신은 appreciated.Thank 것이다.
내가 그 전에했지만 작동하지 않았다 :( – MBJH
다른 곳이나 같은 곳에서 오류가 있었나요? 아마'@ tag_list'가 만들어져 배열을 만드는 방식을 바꿀 수 있습니다 - 소스에서 바꾼다면 괜찮을 것입니다. – dax
하려고 할 것입니다 감사합니다. – MBJH