创建自定义视图

时间:2019-08-09 13:57:00

标签: ruby ruby-on-rails-5 custom-view custom-routes

我正在尝试为某事件创建一个登陆页面,以供人们访问以查看事件的详细信息。我已经创建了视图,向事件资源添加了路由,并对控制器进行了更改,但是做错了什么。

这是我的代码:

routes.rb:

resources :events do
    resources :guests
    match '/landing_page', to:'events#landing_page', as: :landing_page, :via =>[:get, :post]
    # resources :guestlists
  end

event_controller:

def landing_page
    @event = Event.find(params[:id])
  end

当我打开登录页面时,出现以下错误:

“ ActiveRecord :: RecordNotFound(找不到没有ID的事件):”

1 个答案:

答案 0 :(得分:0)

万一有其他人遇到这个问题,我想在这里记录Sergio的最后评论,我认为这会导致我认为大多数人都希望得到的结果。将其嵌套在成员块中应该会为您带来理想的结果:

resources :events do
  member do
    get :landing_page
  end
end

运行rake routes现在应该显示/events/:id/landing_page(.:format),因此您可以使用在show方法中使用的方法,该方法只要求params[:id]

在这一点上,我的大脑一直处于挣扎状态,因为互联网上的资源似乎正在减少。

相关问题