Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 使用友好的ID gem和Rails,如何重新生成slug字段?_Ruby On Rails 4_Seo_Friendly Id - Fatal编程技术网

Ruby on rails 4 使用友好的ID gem和Rails,如何重新生成slug字段?

Ruby 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

我正在构建一个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}-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!; }