gpt4 book ai didi

ruby-on-rails-4 - 在 Rails 中使用 Friendly ID gem,如何重新生成 slug 字段?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:44:03 26 4
gpt4 key购买 nike

我正在构建一个托管游戏的 Rails 应用程序。游戏属于类别,因此每个类别可以有很多游戏。

我正在使用 Friendly_id gem 生成 URL slugs 并具有以下设置:

分类.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

Games_Controller.rb

...
def category
@category = Category.friendly.find(params[:id])
@categories = Category.all
@games = @category.games.page(params[:page])

render 'games/index'
end
...

路线.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 %>

问题是,当我使用 Friendly_id 的 slugged 模块时,Rails 生成的 url 没有“-games”后缀,所以我最终得到这样的 URLS:

http://localhost:3000/action
http://localhost:3000/adventure

有没有什么方法可以让 Rails 在我的 URL 中保留“-games”,并让它正常运行,以便在模型中进行处理时删除“-games”?

谢谢。

最佳答案

是这样的:

User.find_each{ |i| i.slug = nil; i.save!; }

关于ruby-on-rails-4 - 在 Rails 中使用 Friendly ID gem,如何重新生成 slug 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32928486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com