ActionNotFound(无法为 UsersController 找到动作“显示”):ruby on rails

Posted

技术标签:

【中文标题】ActionNotFound(无法为 UsersController 找到动作“显示”):ruby on rails【英文标题】:ActionNotFound (The action 'show' could not be found for UsersController): ruby on rails 【发布时间】:2018-08-08 00:05:31 【问题描述】:

每次单击用户名时都会出现此错误(在此 your_list.html.erb 中找不到 UsersController 的“显示”操作)

这是你的_list.html.erb

<span class="pull-right text-center">
  <%= image_tag avatar_url(list.item.user), class: "img-circle 
             avatar-medium" %></br>
   <%= link_to user_path(list.item.user) do %>
                <%= list.item.user.fullname %>
   <% end %>
</span>

这是我的用户控制器

 class UsersController < ApplicationController
    def shown
    @user = User.find(params[:id])
    @items = @user.items
   end
 end

单击按钮时的命令行图像

【问题讨论】:

【参考方案1】:

正确的错字应该是show 而不是shown

def show
  @user = User.find(params[:id])
  @items = @user.items
end

show 模板创建到您的users 文件夹中,例如show.html.erb

【讨论】:

谢谢,但现在我收到此错误 UnknownFormat (UsersController#show 缺少此请求格式和变体的模板。@fool-dev 完整的错误消息是 == UsersController#show 缺少此请求格式和变体的模板。 request.formats: ["text/html"] request.variant: [] 注意!对于 XHR/Ajax 或 API 请求,此操作通常会响应 204 No Content:一个空白屏幕。由于您是在 Web 浏览器中加载它,我们假设您希望实际呈现一个模板,而不是什么都没有,所以我们显示一个错误是非常清楚的。如果您期望 204 No Content,请继续。这就是您将从 XHR 或 API 请求中获得的信息。试一试。 将你的 HTML 文件`your_list.html.erb`重命名为show.html.erb 好像漏掉了show模板,在users文件夹内创建或重命名文件为show.html.erb【参考方案2】:

确保重新检查 routes.rb 中的路由条目,例如

resources :users

控制器将操作名称 shown 重命名为 show 并呈现相应的 your_list.html.erb 文件

def show
  @user = User.find(params[:id])
  @items = @user.items
  render :template => 'products/your_list'
end

【讨论】:

以上是关于ActionNotFound(无法为 UsersController 找到动作“显示”):ruby on rails的主要内容,如果未能解决你的问题,请参考以下文章

Meanjs 无法将图像保存到嵌套模式中

rails自定义出错页面

DEBUGImportError: No module named 'pygal'

使用Powershell远程安装.msi

Android Studio NDK开发环境搭建

Constraint 无法解析为类型