Ruby on rails 3 设计:如何访问所有控制器中的助手方法

Ruby on rails 3 设计:如何访问所有控制器中的助手方法,ruby-on-rails-3,methods,devise,twitter-bootstrap,undefined-reference,Ruby On Rails 3,Methods,Devise,Twitter Bootstrap,Undefined Reference,我试图在我的导航栏标题(twitter引导)中实现一个Desive登录表单,但它只是告诉我资源不是一个已定义的方法 我是否需要以某种方式继承Desive helper方法来实现这一点?当涉及到创建自定义登录页面时,它与控制器无关,它与通过helper方法的helper访问视图中的内容有关。您希望将它们添加到应用程序\u helper.rb文件中。以下是该方法的概述: 简而言之,您基本上希望将其添加到您的应用程序_helper.rb中 def resource_name :user end

我试图在我的导航栏标题(twitter引导)中实现一个Desive登录表单,但它只是告诉我资源不是一个已定义的方法


我是否需要以某种方式继承Desive helper方法来实现这一点?

当涉及到创建自定义登录页面时,它与控制器无关,它与通过helper方法的helper访问视图中的内容有关。您希望将它们添加到应用程序\u helper.rb文件中。以下是该方法的概述:

简而言之,您基本上希望将其添加到您的应用程序_helper.rb中

def resource_name
 :user
end

def resource
  @resource ||= User.new
end

def devise_mapping
  @devise_mapping ||= Devise.mappings[:user]
end

在我所有的项目中,当我使用twitter引导时,我已经多次使用它在导航栏中创建自定义登录表单。它工作得很好,不需要您在其他任何地方更改任何其他代码。

谢谢,这就成功了。按照惯例,最好将其保存在应用程序帮助程序或单独的身份验证帮助程序中?您需要将其放入
application\u helper.rb
中,因为它将位于布局的导航栏上,并且有可能显示在任何控制器的视图中。只有对特定控制器重要的帮助器方法才能进入该控制器的帮助器文件。这就是为什么您首先会出现错误,Desive的帮助文件中有这些方法,当您在控制器外部调用这些方法时,它不知道您在谈论什么方法。简言之,如果您需要在任何地方都可以访问它,请将其放在application_helper.rb中,否则只需将其放在控制器的helper文件中即可。我知道这个问题已经有两年没有被激活了。但我面临着同样的问题,即访问Desive的资源助手。问题是我有不止一个资源,具体来说,一个用于客户,一个用于管理员。鉴于我的情况,我如何才能做到这一点?