class Content < ActiveRecord::Base
has_friendly_id :title, :use_slug => true
end
我怎么可以做一个像/ about-us而不是/ contents/about-us的链接?friendly_id/content_url没有范围
我应该修改content_url方法还是有更好的方法?
class Content < ActiveRecord::Base
has_friendly_id :title, :use_slug => true
end
我怎么可以做一个像/ about-us而不是/ contents/about-us的链接?friendly_id/content_url没有范围
我应该修改content_url方法还是有更好的方法?
好的,重新做这个答案。我已经研究了一下,包括has_friendly_id插件,看起来不错,但之前没有用过。我有点推出了自己的方法来创建友好的网址。
我想我现在明白你要求什么......你的内容表中的每个标题,你想要一个友好的网址,并且你想要该网址在/ (root)
而不是/content
下开始。我没有看到使用friendly_id做到这一点的直接方法,但那没关系,routes.rb很容易做到这一点。
修改routes.rb中,使content
您root
:
map.root :controller => 'content'
我想多map.root调用可以做,它只是取决于订单,如果有冲突。如果没有,这只是一个别名
map.connect '', :controller => 'content'
祝你好运!
我刚刚为我正在处理的网站完成了此操作。
它实际上是指定正确路线的问题。
当你的模式被称为内容,我想你已经映射的内容作为这样的资源(在你的routes.rb):
map.resources :content
这将处理这样的URL:
http://example.com/content/my-special-content-page
要处理像URL:
http://example.com/my-special-content-page
您只需将路由映射是这样的:
map.content '/:id', :controller => 'content', :action => 'show'
注:
路线从顶部工作底部,所以你需要把这个低于大多数事情。尤其是:
map.root :controller => "welcome"
如果你把上面这个新的路线,你会拥有一个错误,因为它会尝试打电话与该Controller.show行动:零的ID。
你还需要确保随时随地可以生成你的意见,你的网址就需要这样使用这条新航线:
= link_to "My Special Page", content_path(@content)
不完全是我想要的,但一个很好的解决方案。 如果我有两个或更多型号,不仅可以使用内容,而且可以使用产品和照片,我应该怎么做? – astropanic 2010-03-01 21:31:08
我的意思是我有一个模型,标题为“关于我们” ,我不想每次将新模型添加到数据库时都修改config/routes文件 – astropanic 2010-02-26 06:12:46
我更多地解答了我的答案。如果您需要更多解释,请告诉我。看起来你对路线的目的有些困惑,因为你不断提到一个模型。 “路径”或“链接”实际上映射到控制器和操作。然后通过控制器中的命名操作方法访问该模型。我不知道有什么方法可以直接路由到模型。如果有办法,它肯定不是轨道应该工作的方式。 – dpb 2010-02-26 16:17:21
我知道轨道路由如何工作,并知道动作控制器mechanizm,但我想要像http://ministerstwogadzetow.com这样的链接,例如,看看这两个链接http://www.ministerstwogadzetow.com/wyciagarka-do- slodyczy.html - 这指向产品控制器显示操作和这一个http://www.ministerstwogadzetow.com/zegary-i-zegarki.html指向类别控制器显示操作(PHP引擎),你可以看到,有没有/类别/东西或/产品/东西,这就是我想要的 – astropanic 2010-02-26 18:03:58