我做了rails g controller World
并创建了一个名为world
的新布局。我现在有app/views/world/index.html.erb
。这是我的WorldController
:
class WorldController < ApplicationController
before_filter :login_required
layout "world"
def show
#??
end
end
我不知道在def show中放入什么内容,以便我可以导航到localhost:3000/world/index
并让views/world/index
页面呈现。任何帮助将不胜感激。
答案 0 :(得分:1)
显示是指路径中的操作,而不是“显示”的命令。相反,您需要定义index
操作。
def index
end
如果这不起作用..可能存在路由问题。显示config / routes.rb
答案 1 :(得分:0)
您的控制器以单数形式命名为“World”。这通常意味着您的“世界”资源是单一的。即只有一个世界(世界不多)。如果是这样的话,就没有“索引”。您可以像这样定义路线:
resource :world
- which would give you the route
/world - mapped to WorldsController#show
这假定资源是单一的,并且只有一个世界。所以你不需要#show
它的id,因为它假设只有一个存在(并且可以找到没有标识符)。
如果你想要多个世界,你可以用以下方式定义你的路线:
resources :worlds
- and you'd end up with the routes:
/worlds - mapping to WorldsController#index
/world/:id - mapping to WorldsController#show
我想重点是,有多个世界吗?如果有,请使用resources :worlds
定义您的路线。如果只有一个世界,请使用resource :world
定义您的路线。在后一种情况下,没有索引方法(因为只有一个World,不需要索引)