Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 5路由、url问题_Ruby On Rails_Rails Routing - Fatal编程技术网

Ruby on rails Rails 5路由、url问题

Ruby on rails Rails 5路由、url问题,ruby-on-rails,rails-routing,Ruby On Rails,Rails Routing,在我的应用程序上更改路线后,我在尝试获取指向工作的链接时遇到问题。这可能是一个简单的问题,但我真的看不到仅仅用对象名链接到link_to将不会像之前更改路由之前那样工作 背景:我正在使用friendly_id gem(不确定在手动更改url后是否仍然需要它)。 我也在那里使用Ancestory gem 在正面应用程序上。我有一个仅用于索引和显示的列表资源。参见下面的路线和之前的工作路线 # Front facing resources scope "/:category_name/:catego

在我的应用程序上更改路线后,我在尝试获取指向工作的链接时遇到问题。这可能是一个简单的问题,但我真的看不到仅仅用对象名链接到link_to将不会像之前更改路由之前那样工作

背景:我正在使用friendly_id gem(不确定在手动更改url后是否仍然需要它)。 我也在那里使用Ancestory gem

在正面应用程序上。我有一个仅用于索引和显示的列表资源。参见下面的路线和之前的工作路线

# Front facing resources
scope "/:category_name/:category_id" do
    resources :listings, only: [:show], path: '/:title'
end
resources :listings, only: [:index]
工作前(罚款)

我已成功使我的url显示以下结果:

listing GET    /:category_name/:category_id/:title/:id(.:format)   listings#show
结果:

http://localhost:3000/listings/helicopter/test-one/4
现在就这样吧。我仍在试图找出最终的url。因此,我可以创建列表并在浏览器中手动键入url来查看它

当我查看列表的索引页并且有指向的链接时,会发生此错误

当前代码:

<%= link_to listing.title, listing %>
如何将这些必需的键添加到“链接到”帮助器?我试过很多方法,但不远。我认为仅仅更改显示路径不会对以前的控制器方法造成太大的影响,并且列表仍然可以通过id找到

任何方向都很好。非常感谢

***更新****

好的,在发送上面的内容之前,我仔细看了一下,让它工作了,但是我想问,有没有更干净的方法来做到这一点?只是看起来不太“正轨”。我的最终目标是有一个长的SEO友好的链接,其中包含类别和可能的子类别

工作代码:

<%= link_to listing.title, listing_path(category_name: "listings", category_id: listing.category.name, title: listing.title.parameterize, id: listing.id) %>

想一想好吗?

你可以找帮手帮忙

app/helpers/listing_helper.rb

module ListingHelper

  def listing_route(listing, category_name = "Listings")
    listing_path(category_name: listing, category_name: listing.category.name, title: listing.title.parameterize, id: listing.id)
  end

end
关于您的观点

<%= link_to listing.title, listing_route(listing) %>

我想这很简单。万分感谢,哈维尔
http://localhost:3000/listings/Aircraft/twin-piston-jet/1
module ListingHelper

  def listing_route(listing, category_name = "Listings")
    listing_path(category_name: listing, category_name: listing.category.name, title: listing.title.parameterize, id: listing.id)
  end

end
<%= link_to listing.title, listing_route(listing) %>