指向新页面的基本栏目

时间:2016-01-14 14:23:55

标签: ruby-on-rails

所以我想要在看起来像这样的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; =演出

的活动

想法?

2 个答案:

答案 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

干杯,

尼尔斯