这是我第一次使用单表继承,在将应用程序推到Heroku之前,这是一次很棒的体验。我有一个用户模型(和带有类型列的表)、一个继承自用户类的传送器模型和一个属于传送器的生成器模型(以及带有hauler_id列的表)。以下是压缩代码:
#hauler.rb model
class Hauler < User
has_many :generators
end
#generator.rb model
class Generator < ActiveRecord::Base
attr_accessible :name, :hauler_id
belongs_to :hauler
end
#sessions_helper.rb
...
def hauler?
current_user.type==Hauler
if current_user.type==Hauler
@generator = current_user.generators
end
end
#home.html.erb
<% if hauler? %>
<% unless @generator.nil? || @generator.emtpy? %>
<ul>
<% @generator.each do |g| %>
<li><%= g.name %></li>
<% end %>
</ul>
<% end %>
<% end %>如果用户使用type=hauler登录,他们的生成器列表应该会显示在他们的主页上。这在我的本地机器上工作,但在Heroku上不起作用。我已经对代码进行了一些修补,并确定问题出在sessions_helper文件中,但我不确定如何使其工作。从Heroku运行,<% if displayed?%>中不包含任何内容。一片空白。
发布于 2011-01-03 05:14:27
经过大约一个小时的修补,我已经解决了我自己的问题。显然,Rails在访问方法的类型列时遇到了问题。相反,代码应该是这样的:
def hauler?
current_user.class.name=="Hauler"
endhttps://stackoverflow.com/questions/4576238
复制相似问题