2013-02-14 78 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} TO :conditions => [:dimension => nil]

你能與上述嘗試。

意味着你必須改變HASH語法。

相關問題