Ruby on rails 4 使用友好的ID gem和Rails,如何重新生成slug字段?
我正在构建一个rails应用程序来托管游戏。游戏属于类别,因此每个类别可以有许多游戏 我正在使用友好的_id gem生成URL段塞,并具有以下设置: Category.rbRuby on rails 4 使用友好的ID gem和Rails,如何重新生成slug字段?,ruby-on-rails-4,seo,friendly-id,Ruby On Rails 4,Seo,Friendly Id,我正在构建一个rails应用程序来托管游戏。游戏属于类别,因此每个类别可以有许多游戏 我正在使用友好的_id gem生成URL段塞,并具有以下设置: Category.rb class Category < ActiveRecord::Base extend FriendlyId friendly_id :name_and_games, use: [:slugged] has_many :games def name_and_games "#{name}-ga
class Category < ActiveRecord::Base
extend FriendlyId
friendly_id :name_and_games, use: [:slugged]
has_many :games
def name_and_games
"#{name}-games"
end
end
Routes.rb
get ':friendly_id', to: "games#category", as: :category
Category_View.html.erb
<% categories.each do |category| %>
<%= link_to category_path(category) do %>
<span><%= pluralize(category.name.capitalize, "Game") %> (<%= category.games.count %>)</span>
<% end %>
<% end %>
有没有办法让rails在我的URL中保留“-games”并让它们都很好地发挥作用,以便在模型中处理时删除“-games”
谢谢。原来问题并不是友好id不会进行更新,而是slug没有刷新
我不得不进入Rails控制台,手动将每个类别的“slug”列设置为nil。一旦我这样做了,Friendly\u id会重置“slug”列以反映我的附加文本。结果表明问题不是Friendly\u id不会进行更新,而是slug没有得到刷新 我不得不进入Rails控制台,手动将每个类别的“slug”列设置为nil。一旦我这样做了,Friendly\u id将重置“slug”列以反映我的附加文本。因此:
User.find_each{ |i| i.slug = nil; i.save!; }
所以它是:
User.find_each{ |i| i.slug = nil; i.save!; }
看起来has_permalinks gem比Friendly_id在解决这个问题上做得更好。不过,使用Friendly_id将很好,因为它似乎是更好的支持选项,而且它还有更多的功能,我很想利用。看起来has_permalinks gem比Friendly_id在解决此问题方面做得更好。不过,使用友好的_id将很好,因为它似乎是受支持的更好的选项,而且它还有我想利用的更多功能。
User.find_each{ |i| i.slug = nil; i.save!; }