Rails link_to 最后一个脚手架项目

Rails link_to Last Scaffold Item

我正在开发一个学习平台,该平台现阶段有用户、管理员和 'feeds'(包含学习内容的页面)。我想创建一个 link 将用户带到管理员创建的最新提要。在控制台中,我可以通过 'feed.last'.

找到这条记录

这是我的应用程序中的路由:

                   feeds GET    /feeds(.:format)               feeds#index
                         POST   /feeds(.:format)               feeds#create
                new_feed GET    /feeds/new(.:format)           feeds#new
               edit_feed GET    /feeds/:id/edit(.:format)      feeds#edit
                    feed GET    /feeds/:id(.:format)           feeds#show
                         PATCH  /feeds/:id(.:format)           feeds#update
                         PUT    /feeds/:id(.:format)           feeds#update
                         DELETE /feeds/:id(.:format)           feeds#destroy
        new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
            user_session POST   /users/sign_in(.:format)       devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
           user_password POST   /users/password(.:format)      devise/passwords#create
       new_user_password GET    /users/password/new(.:format)  devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format) devise/passwords#edit
                         PATCH  /users/password(.:format)      devise/passwords#update
                         PUT    /users/password(.:format)      devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
       user_registration POST   /users(.:format)               devise/registrations#create
   new_user_registration GET    /users/sign_up(.:format)       devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
                         PATCH  /users(.:format)               devise/registrations#update
                         PUT    /users(.:format)               devise/registrations#update
                         DELETE /users(.:format)               devise/registrations#destroy
                    root GET    /                              pages#home

有没有一种方法可以编写 'link_to' 操作来处理此问题(例如:<%= link_to "Latest Feed"、___________ %>)?

有两种方法可以做到这一点。您可以将成员操作添加到名为 latest(或您喜欢的任何名称)的 routes.rb 中的提要资源。然后您将创建相应的控制器操作和视图。在控制器操作中,您将设置@feed = Feed.last。第二个选项是 link 到索引或显示操作,将 GET 参数添加到 URL 然后将逻辑放入控制器操作中 returns Feed.last 如果参数已设置。

您可以为此进行单独的控制器操作(以保持 URL 不变),或者只是这样做:

<%= link_to "Latest Feed", Feed.order(:created_at).last %>

请注意,我添加了 .order。这是为了确保根据创建时间它是最后一个,而不是记录的 ID。