Rails错误resource_name - devise帮助路由和渲染

2024-02-24

我正在尝试渲染 Devise gem 的登录视图,但出现错误,下面是我当前拥有的代码:

这是我的views/users/shared/_links.html.erb:

<%- if controller_name != 'sessions' %>
  <%= link_to "Sign in", new_session_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
  <%= link_to "Sign up", new_registration_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
  <%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
  <%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
  <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.omniauthable? %>
  <%- resource_class.omniauth_providers.each do |provider| %>
    <%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
  <% end -%>
<% end -%>

And my config/routes.rb:

Densidste::Application.routes.draw do
  match 'user/edit' => 'users#edit', :as => :edit_current_user

  match 'signup' => 'devise/users#new', :as => :signup

  match 'logout' => 'devise/sessions#destroy', :as => :logout

  devise_for :users do
    get "login", :to => "devise/sessions#new"
  end

  resources :sessions

  resources :users

  devise_for :users

  resources :aktivs

  resources :taggingposts

  resources :tags

  resources :kommentares

  resources :posts

  # You can have the root of your site routed with "root"
  # just remember to delete public/index.html.
  root :to => "public#index"
end

在我的应用程序布局中:

<%= render("users/shared/links") %>

我收到以下错误_links.html.erb部分的:

NameError in Public#index

Showing C:/Rails/Densidste/app/views/users/shared/_links.erb where line #2 raised:

undefined local variable or method `resource_name' for #<#<Class:0x5db76c0>:0x5db6538>

Extracted source (around line #2):

1: <%- if controller_name != 'sessions' %>
2:   <%= link_to "Sign in", new_session_path(resource_name) %><br />
3: <% end -%>
4: 
5: <%- if devise_mapping.registerable? && controller_name != 'registrations' %>

Trace of template inclusion: app/views/public/index.html.erb

Rails.root: C:/Rails/Densidste

最后,在我的应用程序控制器中,我有以下内容:

before_filter :resource_name
  def resource_name
    if user_signed_in?
      current_user.name
    else
      :user
    end
  end
end

任何帮助将不胜感激,谢谢!


resource_name在设计生成的控制器中定义。我认为您不能在应用程序布局中包含这些共享链接,我认为它们旨在用于由设备控制器呈现的设备表单(注册、会话、密码、确认等)。

如果您希望每个页面中都有少量的登录/退出片段,您可能需要考虑自己编写这些链接。例如,如果您正在使用设备的对象是user,你可以这样写:

<%= link_to "Sign in", new_session_path(:user) %><br />

the resource_name只是您正在使用的资源的 Devise 抽象。我希望如果您建立此链接,您知道which您想要登录的经过身份验证的对象的数量,因此您可以明确指定它。你也可以跑rake routes | grep sessions看看路径的名称是什么并直接使用它。例如:

<%= link_to "Sign in", new_user_session_path %><br />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails错误resource_name - devise帮助路由和渲染 的相关文章

随机推荐

  • 如何从 WP7 中的字符串中删除重音符号

    我想从 Windows Phone 7 中的字符串中删除重音符号 变音符号 解决方案here https stackoverflow com questions 249087 how do i remove diacritics accen
  • 在 Vue.js 中如何使用多个路由器视图,其中一个视图位于另一个组件内?

    我有一个 Vue js 单页应用程序 其中有一个使用的主导航栏
  • 在网站访问之间安全存储凭据

    我正在建立一个网站 允许用户创建帐户并访问网站的内容 我不希望用户每次访问该网站时都登录 因此我计划将用户名和密码存储在 cookie 中 但是 我听说这是不好的做法 即使密码经过哈希处理饼干 我应该遵循哪些 最佳实践 才能在用户访问我的网
  • 将字节数组转换为十六进制字符串

    令人惊讶的是 对我来说 这段代码没有达到我想要的效果 fun ByteArray toHexString String return this joinToString it toString 16 事实证明Byte is signed 因
  • 服务模型和 f#

    我刚刚从 f 开始 所以这个问题对你们中的一些人来说可能看起来很简单 所以 我尝试使用位于 System ServiceModel Syndicate 命名空间中的 SyndicateFeed 我向项目添加了以下引用 System Serv
  • `iter().map().sum()` 和 `iter().fold()` 一样快吗?

    编译器是否生成相同的代码iter map sum and iter fold 最终他们实现了相同的目标 但是第一个代码将迭代两次 一次是为了map并一次为sum 这是一个例子 哪个版本会更快total pub fn square s u32
  • 数组到二叉搜索树快速

    给定一个整数数组 有没有办法将其快速转换为二叉搜索树 不平衡 我尝试为每个元素一一插入 但这意味着我必须从头开始遍历每次插入 它工作得很好 但我认为最坏的情况是 O N 2 不平衡 例如数组已排序 鉴于 N 个很大 我认为这将需要一些时间
  • 尝试用另一种语言解密时出现错误的 AES 解密

    当我尝试在 C 中加密并在 C 中解密时 出现错误 输入数据不是一个完整的块 但这对我来说没有任何意义 因为如果我尝试用 C 解密消息 与我进行加密的语言相同 它工作得很好 所以 C 部分的一些代码 int main int argc ch
  • Mysql select递归获取具有多个级别的所有子级

    我有一张桌子 CREATE TABLE IF NOT EXISTS Folder idFolder INT 11 NOT NULL AUTO INCREMENT FolderName VARCHAR 150 NOT NULL idFolde
  • 强制关闭电报上的弹出窗口“打开此链接?”

    当我在帖子中使用 html 格式并创建链接时 Telegram 会显示一个弹出窗口before打开链接 是否有脚本或其他东西可以强制关闭弹出窗口并立即打开链接 我不想插入链接没有 HTML 在单击链接之前 我按下 Enter 键 我使用 A
  • Android - 在 TextView 上显示带边框文本的方法?

    有没有办法在 TextView 上显示带边框的文本 我建议延长TextView http developer android com reference android widget TextView html See Android 自定
  • 如何在 MacBook Air 上的 iOS 模拟器中滚动?

    我有一个滚动视图和一个嵌入的 UIImageView 代码是正确的 但我无法在模拟器中滚动 可能是因为我有触控板 而不是鼠标 或者我可以吗 您需要启用 3 指拖动 从 Apple 菜单中选择 系统偏好设置 单击辅助功能图标 在侧边栏中选择
  • 如何禁用 openssl 中的特定密码套件?

    我想保护我的服务器免受 FREAK 攻击 因此我想禁用所有使用 Openssl 导出级 RSA 密钥的密码套件 有没有办法禁用 openssl 中的特定密码套件 如果是 我该怎么做 有没有办法禁用 openssl 中的特定密码套件 如果是
  • 内存限制=80M。 imagecreatefromjpeg() 的最大图像尺寸是多少?

    我有一个虚拟主机 最大内存限制为 80M 即 ini set memory limit 80M 我正在使用使用函数 imagecreatefromjpeg 的照片上传 当我上传大图片时出现错误 致命错误 允许的内存大小 83886080 字
  • 使用 then() 使函数在节点中顺序运行

    我想在序列总线中运行循环函数 该函数总是异步的 有什么方法可以使其同步而不使用回调或任何外部库 file 1 var db require promiseUnderStanding var fun function for var i 0
  • 如何求两个表的总和?

    我有两个表 第一个名称是 销售 第二个名称是 项目 两个表中都有相同的 code 和 qtd 列 我想编写 MYSQL 查询 我需要两个表中的 sum qtd 其中两个表中的代码相同 对于单表 我正在使用这个 按代码从销售组中选择代码 su
  • FORTRAN 95:是否可以在不共享源代码的情况下共享模块?

    我希望能够共享 FORTRAN 95 模块而不共享其源代码 是否可以这样做 也许通过共享 MOD 文件 如果这是相关的 我在 Plato 上使用 Silverfrost FTN95 编译器 到目前为止 我只能通过使用外部模块的源代码来完成这
  • 为什么 _mm_mulhrs_epi16() 总是进行有偏舍入到正无穷大?

    有谁知道为什么pmulhrsw指示或 mm mulhrs epi16 x RoundDown x y 16384 32768 总是向正无穷大舍入 对我来说 这对负数有很大的偏差 因为像 0 6 0 6 0 6 0 6 这样的序列平均起来不会
  • C++ 矢量 和套接字

    有没有办法调用 send recv 传递向量 在 C 中缓冲套接字数据的好习惯是什么 例如 读取直到 r n 或直到 upper bound 4096 字节 std vector
  • Rails错误resource_name - devise帮助路由和渲染

    我正在尝试渲染 Devise gem 的登录视图 但出现错误 下面是我当前拥有的代码 这是我的views users shared links html erb br br