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的主要内容,如果未能解决你的问题,请参考以下文章