gpt4 book ai didi

ruby-on-rails - redirect_to 方法如何在 ruby​​ 中工作

转载 作者:数据小太阳 更新时间:2023-10-29 07:23:03 25 4
gpt4 key购买 nike

这是我的更新功能,当某些内容被更新时,它会完美地转到 http://localhost:3000/articles/2

 def update
@article = Article.find(params[:id])
if @article.update(article_params)
redirect_to @article
else
render 'edit'
end
end

redirect_to @article 如何工作并显示 artiles/2/页面?

下面是我的路线

       Prefix Verb   URI Pattern                  Controller#Action
articles GET /articles(.:format) articles#index
POST /articles(.:format) articles#create
new_article GET /articles/new(.:format) articles#new
edit_article GET /articles/:id/edit(.:format) articles#edit
article GET /articles/:id(.:format) articles#show
PATCH /articles/:id(.:format) articles#update
PUT /articles/:id(.:format) articles#update
DELETE /articles/:id(.:format) articles#destroy
welcome_index GET /welcome/index(.:format) welcome#index
root GET / welcome#index

最佳答案

神奇的方法是polymorphic_url

当您调用 link_toredirect_to 等并且您不传递字符串或路由选项的散列时,Rails 将最终调用此方法。

Active Record(和 Active Model 兼容对象)有一个 model_name 类方法,它返回一个 ActiveMethod::Name 对象,它有一堆方法来获取模型类的“正确”名称各种用途。

其中一个 (singular_route_key) 说明了路径中模型使用的名称。如果您在引擎中,这还会处理诸如命名空间之类的事情。

在最简单的情况下,这可以归结为

@article.class.model_name.singular_route_key #=> 'article'

Rails 然后通过将其与任何前缀选项和正确的后缀('url'、'path' 等)连接起来,从中生成方法名称,并以类似 article_url 的方法名称结尾>。然后调用该方法(根据您的路由文件为您生成),传递文章,该文章返回本文的 url。

关于ruby-on-rails - redirect_to 方法如何在 ruby​​ 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23082683/

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