2014-06-24 3 views
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 것이다.

답변

0

어디에 @tag_list이 을 만들어? 배열로 사용 것 같다 당신이 빠른 수정이에 라인 (19)을 바꿀 수 원하는 경우 지금은 문자열

입니다 :

new_tag_names = @tag_list.split(', ') - tags.map(&:name) 
+0

내가 그 전에했지만 작동하지 않았다 :( – MBJH

+0

다른 곳이나 같은 곳에서 오류가 있었나요? 아마'@ tag_list'가 만들어져 배열을 만드는 방식을 바꿀 수 있습니다 - 소스에서 바꾼다면 괜찮을 것입니다. – dax

+0

하려고 할 것입니다 감사합니다. – MBJH