Friendly_id 名称未显示在 url 中
Friendly_id name not displaying in url
我已将 friendly_id
gem 添加到我的申请中。名称属性未替换 URL.
中的索引
Gem
gem 'friendly_id', '~> 5.1.0'
迁移
rails g migration add_slug_to_items slug:string
迁移文件
class AddSlugToItems < ActiveRecord::Migration
def change
add_column :items, :slug, :string
add_index :items, :slug
end
end
控制器
def show
@searched_item = Item.friendly.find(params[:id])
end
查看路径
/views/items/show.html.erb
路线
resources :items, only: [:new, :create, :update, :show]
按钮生成 URL
<%= link_to fr.name, item_path(fr.id, search_info: params), class:"searched_kennel_title_link default_green_color" %>
型号
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
def should_generate_new_friendly_id?
name_changed?
end
这是一个预先存在的应用程序,所以我也 运行:
Item.find_each(&:save)
st运行ge 部分是,当生成 URL 时,它最初是:http://localhost:3000/items/1
当我手动将 URL 更改为: http://localhost:3000/items/item-name
时,它起作用了。
有人知道为什么会发生这种情况,或者我缺少什么吗?
尝试使用
def show
@searched_item = Item.find(params[:id])
end
您的模型中已有查找器。
在您看来:生成按钮 URL
<%= link_to fr.name, item_path(fr.id, search_info: params), class:"searched_kennel_title_link default_green_color" %>
您是否尝试替换 item_path(fr.id, search_info: params)
至:item_path(fr, search_info: params)
或:item_path(fr.slug, search_info: params)
我已将 friendly_id
gem 添加到我的申请中。名称属性未替换 URL.
Gem
gem 'friendly_id', '~> 5.1.0'
迁移
rails g migration add_slug_to_items slug:string
迁移文件
class AddSlugToItems < ActiveRecord::Migration
def change
add_column :items, :slug, :string
add_index :items, :slug
end
end
控制器
def show
@searched_item = Item.friendly.find(params[:id])
end
查看路径
/views/items/show.html.erb
路线
resources :items, only: [:new, :create, :update, :show]
按钮生成 URL
<%= link_to fr.name, item_path(fr.id, search_info: params), class:"searched_kennel_title_link default_green_color" %>
型号
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
def should_generate_new_friendly_id?
name_changed?
end
这是一个预先存在的应用程序,所以我也 运行:
Item.find_each(&:save)
st运行ge 部分是,当生成 URL 时,它最初是:http://localhost:3000/items/1
当我手动将 URL 更改为: http://localhost:3000/items/item-name
时,它起作用了。
有人知道为什么会发生这种情况,或者我缺少什么吗?
尝试使用
def show
@searched_item = Item.find(params[:id])
end
您的模型中已有查找器。
在您看来:生成按钮 URL
<%= link_to fr.name, item_path(fr.id, search_info: params), class:"searched_kennel_title_link default_green_color" %>
您是否尝试替换 item_path(fr.id, search_info: params)
至:item_path(fr, search_info: params)
或:item_path(fr.slug, search_info: params)