0
我知道在這個問題上有幾個帖子,但是我沒有讀過這裏的解決方案。升級到Ruby 1.9.3後Rails 3中未定義的局部變量
我剛剛從Ruby 1.8.7升級到1.9.3p429,現在,我的局部變量中出現未定義的局部變量。
我打電話的部分(從部分的情況下,這是相關的)正是如此:
= render :partial => 'user_name', :locals => {:user => item_user, :extra_class => "active"}
在局部,我正是如此訪問這些當地人:
- if(current_user and user.silhouette_user_id.to_i == current_user.silhouette_user_id)
= notranslate(current_user.full_name)
- else
- if !local_assigns[:extra_class].nil?
= notranslate(link_to(h(user.full_name), stream_url(:user_id => user.silhouette_user_id), :class => extra_class)) rescue "Anonymous"
- else
= notranslate(link_to(h(user.full_name), stream_url(:user_id => user.silhouette_user_id))) rescue "Anonymous"
= notranslate(link_to "Pro", "#", :class => "badge badge-pro", :title => "#{user.part_name} is pro") if SSO.is_pro? user
我可以通過訪問當地人local_assigns散列,所以如果我將這些行添加到頂端,我有權訪問:
- user = local_assigns [:user]
- extra_class = local_assigns [:extra_class]
我可以忍受的。但是,情況變得更糟。用戶是一個ActiveRecord模型對象。然而,我不能用user.attribute表示法訪問這個對象的屬性。相反,我必須用戶用戶[:屬性]。
我可以仍然除此之外,用戶的某些屬性實際上是方法,我不能使用user [:method]訪問。
我以爲它可能是3.1.12的Rails,所以我升級到3.2.13沒有任何變化。
任何想法?它可能是HAML處理器嗎?所有其他已解決的帖子都使用了ERB。
對象我試過了。沒有運氣。 – DSadaka
沒有其他人有這個問題? – DSadaka
我解決了這個問題。這是由我自定義的用戶define_new_methods引起的。 C.F. http://stackoverflow.com/questions/17941607/devise-current-user-weird-behavior-after-upgrade-to-ruby-1-9-3/17985434#17985434 – DSadaka