1

首先,我是 Rails 的新手。
我在 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:0x007eff2004fcd8 的未定义方法“sign_in”

还有几个问题:
1)在 Heplers 中放置一些方法而在 Controllers 中放置一些方法有什么意义/区别?是安全问题还是什么?2)当我在stackoverflow中读到控制器中定义的方法可以在视图中访问时,
我还尝试将sign_in方法放在SessionsController中。所以为了避免我使用的视图中的任何问题

helper_method

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

那么我哪里错了。
我正在使用Rails 3.2.11Ruby 2.0.0p0

4

1 回答 1

1

看起来像一个错字:您的辅助方法是“sing_in”而不是“sign_in”。

于 2013-05-08T15:10:14.407 回答