【问题标题】:ActionNotFound (The action 'show' could not be found for UsersController): ruby on railsActionNotFound(无法为 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

单击按钮时的命令行图像

【问题讨论】:

    标签: jquery ruby-on-rails ruby ruby-on-rails-3 rubygems


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-02
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 2012-11-24
      • 1970-01-01
      相关资源
      最近更新 更多