所以我想要在看起来像这样的rails中有一个url路径。
baseurl/event/gigs
基本上演出会有自己的演出文件
所以我不确定这是不是我的PHP开始,但是,我已经得到了像这样的文件结构
event > gigs > index.html.erb
这是正确的方法吗?如果是这样我会有这样的控制器吗?
class GigsController < EventController
def index
@vars will go here unless their inside the eventcontroller already?
end
end
修改
所以我有一个金发碧眼的时刻,
现在发生了什么,我是不是试图让演出页面起作用,但我仍然停留在show方法上试图获得演出和id。
我输入的网址是/event/gigs
错误即将到来
找不到带有&#39; id&#39; =演出
的活动想法?
答案 0 :(得分:0)
您有一个资源:events,默认情况下生成许多路径:
其中一个是GET /events/:id
路线。您正在访问的URL正在访问此路由,并且它正在数据库中搜索具有:id'gigs'的Event ActiveRecord对象。
我相信您要做的是在/events/
命名空间下定义静态“演出”页面,
为此,请将其添加到routes.rb:
resources :events do
collection do
get '/gigs' => "events#gigs"
end
end
如果您想拥有静态/events/gigs
页面,您正在寻找的文件结构如下:
您的控制器,您将为演出操作提供变量和逻辑:
app/controllers/events_controller.rb
您将拥有以下内容:
def gigs
# Logic goes here.
end
有问题的观点:
app/views/events/gig.html.erb
P.S - 如上所述,您应该浏览guides.rubyonrails.org/action_controller_overview.html以了解基本的Rails概念(文件夹结构,控制器是什么以及路由如何工作......)。
答案 1 :(得分:0)
您应该检查rake routes
的输出。这将告诉您URI将如何映射到控制器操作。这一直是调试此类问题的好方法。
但是根据您发布的内容以及@GigaBass推荐的内容,我相信您应该将浏览器指向/events/gigs
。
干杯,
尼尔斯