我有多个表,其中有100行,其中有一个名称字段。名称字段的内容类似于
some name
我目前的网址是
http://localhost:3000/posts/show/2
如何将其转换为
http://localhost:3000/some-name
对于动态插入数据,我使用了friendly url gem
,这很好。
答案 0 :(得分:1)
可以转换为http:localhost:3000/some-name
。
你必须做这样的事情:
get ":row-name" => 'controller#actoin_name', :as => 'row_name'
并将其放在路径文件的末尾,以便任何其他操作都不会在此路径上被捕获。在控制器操作中,您需要执行以下操作:
@row = Row.find(params[:row_name])
但对于rails来说这不是一个好主意。你应该像这样映射网址:
resources:rows , :except=> [:show]
get rows/:row_name => 'rows#show'
答案 1 :(得分:0)
您可能需要查看friendly-id gem
以下是关联的railscast on it
但是,这会为您提供localhost:3000 / posts / some-name等网址 如果要消除帖子路径,可能必须修改路由才能执行此操作。
评论更新。
您必须创建迁移。 rails g migration add_slug_to_posts slug:string
class AddSlugToPosts < ActiveRecord::Migration
def change
add_column :posts, :slug, :string
add_index :posts, :slug
end
end