Rails link_to 最后一个脚手架项目
Posted
技术标签:
【中文标题】Rails link_to 最后一个脚手架项目【英文标题】:Rails link_to Last Scaffold Item 【发布时间】:2017-01-08 08:29:49 【问题描述】:我正在开发一个学习平台,在这个阶段有用户、管理员和“提要”(包含学习内容的页面)。我想创建一个链接,将用户带到管理员创建的最新提要。在控制台中,我可以使用 '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' 操作来处理这个问题(例如:)?
【问题讨论】:
【参考方案1】:有两种方法可以做到这一点。您可以在 routes.rb 中为您的提要资源添加一个成员操作,命名为 latest(或任何您喜欢的)。然后您将创建相应的控制器操作和视图。在控制器操作中,您将设置@feed = Feed.last。第二个选项是链接到索引或显示操作,将 GET 参数添加到 URL,然后将逻辑放入控制器操作中,如果设置了参数,则返回 Feed.last。
【讨论】:
感谢您的回复。我会试一试,看看在应用程序中什么效果最好。【参考方案2】:您可以为此创建一个单独的控制器操作(以保持 URL 不变),或者只是这样做:
<%= link_to "Latest Feed", Feed.order(:created_at).last %>
请注意,我添加了.order
。这是为了确保它是根据创建时间的最后一个,而不是记录的 ID。
【讨论】:
以上是关于Rails link_to 最后一个脚手架项目的主要内容,如果未能解决你的问题,请参考以下文章