我有一个非常奇怪的场景,似乎在rails应用程序中忽略了一个控制器操作方法。我假设这是不可能的,但我需要有人帮我看看“森林树木”:)这就是我所拥有的。首先是自定义路线:
match 'topusers/:skill', :to => 'skills#topusers', :as => :top_users
然后在我的控制器中,我将其缩减为以下内容:class SkillsController< ApplicationController中
class SkillsController < ApplicationController
....
def top_users
@skills = Skill.all
end
....
end
我的观点已缩减为以下
<% @skills.each do |skill| %>
<%= skill.name %>
<% end %>
有了这个,我在@ skills.each行上收到nil:NilClass的“undefined method` each'错误。我知道技能表中有数据,我可以通过rails控制台看到。要进行故障排除,我做了一个渲染:text =&gt; @ skills.to_yaml似乎被忽略了。这让我很困惑,所以我完全删除了top_users方法,但仍然遇到了让我困惑的错误,因为我认为rails会因为没有top_users方法而尖叫我。然后我认为rails可能正在查看不同的控制器,因此我将控制器的名称从SkillsController更改为SkillsXXXController。这次铁路确实对我大喊大叫告诉它无法找到控制器,所以我知道它至少看着正确的控制器。
那么,知道为什么我会看到这种行为吗?我的自定义路线是否正确?有没有人见过这种行为?
提前致谢
克里斯
答案 0 :(得分:1)