即使在明确包含它们之后,Rails 3辅助方法在控制器中也不可用

时间:2013-05-08 14:50:53

标签: ruby-on-rails controllers nomethoderror

我是铁杆新手的拳头 我在SessionsController中有这个:

def method
  sign_in 'user'
end

这在SessionsHelper:

def sing_in(user)
    ......
end

所以谷歌搜索和阅读stackoverflow上的一些答案让我尝试这样的事情:
'SessionsHelper'包含在 SessionsController 中,甚至尝试将其置于'ApplicationController'中,如下所示:

class ApplicationController < ActionController::Base

  protect_from_forgery
  include SessionsHelper

  def handle_unverified_requests
    sign_out
    super
  end
end

但我得到了

  

NoMethodError :SessionsController的未定义方法`sign_in':0x007eff2004fcd8

也很少有问题:
1)在Heplers和控制器中放置少量方法的点/差异是什么?这是安全问题还是什么?
2)我也尝试将sign_in方法放在SessionsController 中,因为我在stackoverflow中读取可以在视图中访问控制器中定义的方法。所以为了避免在我使用的视图中出现任何问题

  

是helper_method

但仍然是相同的NoMethodError
3)访问控制器中辅助方法的最佳方法是什么?

所以我哪里出错。
我正在使用 Rails 3.2.11 Ruby 2.0.0p0

1 个答案:

答案 0 :(得分:0)

看起来像一个错字:你的助手方法是'sing_in'而不是'sign_in'。