2013-02-14 4 views
1

Я использовал драгоценный камень под названием ajaxful-rating. Теперь, когда я обновиться до Rails 3.1, я получаю следующее сообщение об ошибке:Ошибка синтаксиса при обновлении Rails: неожиданный ',', ожидающий tASSOC (SyntaxError)

/Users/nn/.rvm/gems/ruby-1.9.2-p290/gems/ajaxful_rating-2.2.9.1/lib/axr/model.rb:23: 
    syntax error, unexpected ',', expecting tASSOC (SyntaxError) 
/Users/nn/.rvm/gems/ruby-1.9.2-p290/gems/ajaxful_rating-2.2.9.1/lib/axr/model.rb:27: syntax error, unexpected keyword_do_block, expecting keyword_end 
      options[:dimensions].each do |dimension| 

Оригинальный код находится в ссылке выше, но соответствующая часть выглядит следующим образом:

def ajaxful_rateable(options = {}) 
    has_many :rates_without_dimension, :as => :rateable, options.merge(:class_name => 'Rate'), 
    :dependent => :destroy, :conditions => {:dimension => nil} 
    has_many :raters_without_dimension, :through => :rates_without_dimension, :source => :rater 

    options[:dimensions].each do |dimension| 
    has_many "#{dimension}_rates", :dependent => :destroy, 
     :conditions => {:dimension => dimension.to_s}, :class_name => 'Rate', :as => :rateable 
    has_many "#{dimension}_raters", :through => "#{dimension}_rates", :source => :rater 
    end if options[:dimensions].is_a?(Array) 

Что является причиной этой проблемы и как я могу это исправить?

спасибо.

ответ

1

Вы должны изменить синтаксис хэш, как показано ниже:

:conditions => {:dimension => nil} К :conditions => [:dimension => nil]

Вы можете попробовать с выше.

Значит, вы должны изменить синтаксис HASH.

Смежные вопросы