【问题标题】:index action is displaying show view索引操作正在显示显示视图
【发布时间】:2015-09-09 17:07:49
【问题描述】:

我的控制器

class AppController < ApplicationController

def index
  @users = User.all
end

def show
end
...

index.html.erb

<% @users.each do |user| %>

<h1><%= user.name %><h1>
<%= user.age %>
<%end%>

show.html.erb

<h1>App#show</h1>
<p>Find me in app/views/app/show.html.erb</p>

routes.rb

Rails.application.routes.draw do

  resources :app
....

但是当我给出索引的路径时 http://localhost:3000/app/index

它不是显示索引视图,而是显示 show.html.erb 的内容。 我在做什么错误,我无法弄清楚。

【问题讨论】:

  • 你试过直接去localhost:3000/app吗?如果您在终端中执行bin/rake routes ,您将看到索引的路径是/app。 Show 将有 /app/[:id] 并且它认为您将 index 作为 id 传递,因此它正在使用 show 路由
  • @aaron.v: 你是对的 :) 解决了这个问题
  • routes.rb 中的控制器和资源应该是复数,模型应该是单数:)
  • @VishnuAtrai:rails 自己创建了这些名称。我刚刚给了控制器应用程序,它创建了这些。
  • 太好了,很高兴能帮到你。如果您想了解有关路线如何运作的更多信息,我会访问此page

标签: ruby-on-rails model-view-controller


【解决方案1】:

不是肯定这会导致您的问题,但不应该为您的控制器命名

class AppsController < ApplicationController

而不是

class AppController < ApplicationController

你的意见会在views/apps而不是views/app

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    相关资源
    最近更新 更多