gpt4 book ai didi

ruby-on-rails - rails 从 url 中删除 Controller 路径

转载 作者:行者123 更新时间:2023-12-04 00:43:32 24 4
gpt4 key购买 nike

我认为有以下循环

<% @posts.each do |post| %>
<%= link_to post do %>
Some html
<% end %>
<% end %>

以上代码将生成链接为localhost:3000/posts/sdfsdf-sdfsdf

但我希望链接为 localhost:3000/sdfsdf-sdfsdf

这是我的路线

  resources :posts, except: [:show]

scope '/' do
match ':id', to: 'posts#show', via: :get
end

最佳答案

你可以这样做:

#config/routes.rb
resources :posts, path: "" #-> domain.com/this-path-goes-to-posts-show

--

另外,请确保将其放在路线的底部;因为它将覆盖任何先前的路线。例如,domain.com/users 将重定向到 posts 路径,除非在 routes 的底部定义了 posts 路径.rb 文件

--

friendly_id

为了实现slug基于路由系统(有效),您将最适合使用 friendly_id .这允许 .find 方法查找扩展模型的 slugid:

#app/models/post.rb
Class Post < ActiveRecord::Base
extend FriendlyID
friendly_id :title, use: [:slugged, :finders]
end

这将允许您在 Controller 中使用以下内容:

#app/controllers/posts_controller.rb
Class PostsController < ApplicationController
def show
@post = Post.find params[:id] #-> this can be either ID or slug
end
end

关于ruby-on-rails - rails 从 url 中删除 Controller 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24496657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com