我得到undefined method 'social_system' for #User:0x000001052e2ad8
。我以爲我會使用塊中的值,任何人都可以解釋我做錯了什麼?Rails 3:嘗試在塊中使用變量時獲取未定義的方法
# User model:
facebook_url string
google_plus_url string
# Constants defined in User model:
SOCIAL_SYSTEMS = [ 'facebook_url', 'google_plus_url' ]
SOCIAL_SYSTEM_NAMES = { 'facebook_url' => 'Facebook',
'google_plus_url' => 'Google +' }
# View (going to be a helper eventually)
<% User::SOCIAL_SYSTEMS.each do |social_system|
url = @user.send(social_system)
if url %>
<p><a href="<%= url %>">
<%= User::SOCIAL_SYSTEM_NAMES[social_system] -%>
</a></p>
<% end
end
%>
據我所知,這應該工作。我假設錯誤來自'@ user.send(social_system)'行。你使用的是什麼版本的Ruby?你可以*嘗試* @user.send(social_system.to_sym)',但這只是一個猜測,因爲'send'方法應該能夠取得字符串,除非Ruby 1.9.2有所不同,我不知道。 – bricker