Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在自定义控制器中设计资源和资源名称帮助器_Ruby On Rails_Devise_Helpers - Fatal编程技术网

Ruby on rails 在自定义控制器中设计资源和资源名称帮助器

Ruby on rails 在自定义控制器中设计资源和资源名称帮助器,ruby-on-rails,devise,helpers,Ruby On Rails,Devise,Helpers,我使用路由扩展了默认的Desive RegistrationController: # use my own controller for devise registrations devise_for :users, :controllers => { registrations: 'registrations' } 在这个控制器中,我有一个名为new\u from\u invitation的方法。此方法呈现一个自定义注册表单,以便在用户来自邀请时显示 我复制了designe/regi

我使用路由扩展了默认的Desive RegistrationController:

# use my own controller for devise registrations
devise_for :users, :controllers => { registrations: 'registrations' }
在这个控制器中,我有一个名为new\u from\u invitation的方法。此方法呈现一个自定义注册表单,以便在用户来自邀请时显示

我复制了designe/registrations/new.html.erb文件。因此,我的自定义注册表单如下所示:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
resource_name,:url=>registration_path(resource_name))do | f |%>
这会引发ArgumentError,因为资源为零。与资源名称相同。 不知何故,资源和资源名称助手在默认的designe/registrations/new方法中可用,但我不知道如何使用。因此,无法找到一种方法使这些助手可用于我的自定义方法。
任何帮助都将不胜感激

将其添加到应用程序帮助文件:

  def resource_name
    :user
  end

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

嘿,谢谢你的回复。实际上,我已经在ApplicationHelper中找到了这些行。它似乎不起作用..我只是通过在RegistrationController的顶部添加:helper ApplicationHelper::ApplicationHelper使它起作用。但这感觉不对。控制器不应该自动看到助手的方法吗?我得到的错误是表单中的第一个参数不能包含nil或be emptyHelper方法在控制器中不直接可用,您必须包含它们,但应用程序助手方法在视图中可用。实际上我想在视图中使用它们,不在控制器中。所以它们应该是可用的,不是吗?