gpt4 book ai didi

ruby-on-rails - Slug url——routes.rb 中需要什么?

转载 作者:行者123 更新时间:2023-12-02 06:19:26 28 4
gpt4 key购买 nike

快速提问。

我在我的帖子 Controller 中创建了一个 slug 方法,以便 @post.slug 返回(ex)“this-is-the-post-name”。

虽然我不确定要在我的 routes.rb 文件中做什么才能使其正常工作('posts/this-is-the-post-name'),但我没有找到非常合适的问题或指南答案。知道怎么做吗?

最佳答案

如果您已经设置了资源,则无需在路由中添加任何内容。如果没有,您的 route 只需要

resources :posts

然后,要使用 slug 作为参数,您需要在您的 post 模型中定义一个 to_param 方法。

# post.rb
def to_param
slug
end

此方法由 url_for 调用以将对象转换为 url。例如

>> @post.slug = 'this-is-the-post-name'
>> post_path(@post) = '/posts/this-is-the-post-name'

您还需要注意的一件事是获取记录。由于 url 不再包含帖子的 ID,因此您必须按 slug 进行搜索。例如,在 show Action 中

def show
# this will not work anymore
# @post = Post.find params[:id]
# you should change this to
@post = Post.find_by_slug params[:id]
end

关于ruby-on-rails - Slug url——routes.rb 中需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15019143/

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