加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使URL中的Ruby on Rails SEO友善地知道@ v

发布时间:2020-12-16 19:26:35 所属栏目:百科 来源:网络整理
导读:我的申请是在RoR 我有一个名为showsummary的动作/视图,其中ID已被传递到URL中,并且控制器已经使用它来实例化@vendor,其中@ vendor.name是公司的名称. 我想要的URL是,而不是显示/ 1 /在URL中具有/ vendor-name. 我怎么做? 解决方法 所有这些解决方案都使用fi
我的申请是在RoR

我有一个名为showsummary的动作/视图,其中ID已被传递到URL中,并且控制器已经使用它来实例化@vendor,其中@ vendor.name是公司的名称.

我想要的URL是,而不是显示/ 1 /在URL中具有/ vendor-name.

我怎么做?

解决方法

所有这些解决方案都使用find_by_name,这肯定需要在该列上有一个索引,并要求它们是唯一的.一个更好的解决方案,我们使用,牺牲少量的美丽,是使用前缀的供应商名称与其ID.这意味着您不必在名称列上有索引和/或需要唯一性.

vendor.rb

def to_param
  normalized_name = name.gsub(' ','-').gsub(/[^a-zA-Z0-9_-.]/,'')
  "#{self.id}-#{normalized_name}"
end

所以这会给你像这样的URL

/ 1-Acme的

/ 19-西夫韦

等等

然后在您的演出动作中,您仍然可以使用

Vendor.find(params[:id])

因为该方法将隐式地在其参数上调用.to_i,并且在这样的字符串上调用to_i将始终返回数字前缀,并将剩余的文本 – 其所有绒毛放在该点.

以上假设您使用的是/:controller /:action /:id的默认路由,这将使您的URL看起来像

商/供应商/显示/ 1- Acme的

但如果你想让他们看看

/ 1-Acme的

然后有一条路

map.show_vendor '/:id',:controller => 'vendors',:action => 'show'

这意味着它几乎可以吞下你可能不想要的很多URL.引以为戒.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读