问题标签 [friendly-id]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1848 浏览

ruby-on-rails - Rails FriendlyId 和 normalize_friendly_id

试图让我的应用程序运行FriendlyId gem(版本 4.0.1)

我认为我这样做的顺序错误,但我想在创建新记录时生成friendly_id slug之前去掉撇号。但是我认为在已经生成 id 之后调用了normalize_friend_id方法。

我已将以下内容添加到我的模型中:

0 投票
3 回答
2273 浏览

ruby-on-rails - Heroku 上的 Rails Friendly_Id,Heroku 不更新 slug

我已经设置了friendly_id gem,跟随它上面的RailsCasts Screencast。在本地这工作得很好,我安装了它,运行User.find_each(&:save)成功地更新了每个现有用户的 slug 字段,一切都很好。

我现在已经将它推送到 Heroku,尽管它对添加的任何新成员都有效,但 Heroku 并没有为我更新现有用户的用户 slug。

运行heroku run console然后User.find_each(&:save)什么也不做:

中的相关代码models/user.rb为:

而且我已经在 Heroku 上运行了所有数据库迁移,它们运行良好。我检查了一下,users表格确实有一个slug字段,但它是空的,我不确定我在哪里出错了。如果有人碰巧以前遇到过这种情况,任何建议将不胜感激。谢谢你。

0 投票
1 回答
1079 浏览

ruby-on-rails - friendly_id,种子数据库,未定义的方法“friendly_id”

在 Rails 3 应用程序中,我正在尝试为使用的模型编写种子(在 db/seeds.rb 中)friendly_id

当我运行rake db:seed任务失败。以下是运行时的要点--trace

这是模型:

friendly_id用作宝石:

有什么帮助吗?

0 投票
2 回答
828 浏览

ruby-on-rails - 在 FriendlyID slug 中隐藏资源名称

我正在使用 FriendlyID 为我的一些模型制作 slug。

要使用 FriendlyID 文档 ( http://rubydoc.info/github/norman/friendly_id/master/frames ) 中提供的示例,我的 URL 当前如下所示:

鉴于在我的情况下,一个城市除了餐馆什么都没有,我正在寻找一种方法来删除 URL 中的“restaurants”位,使其看起来像这样:

或者如果可能的话

实现这一目标的最佳方法是什么 - 如果这样做是可取的?我可以想象最后一个选项可能会产生一些复杂性。

0 投票
1 回答
1415 浏览

ruby-on-rails - Rails Factory Girl RSpec 测试有很多嵌套资源的关系

注意:一个企业有很多目录,有产品,一个目录有很多产品。关联已正确定义,并且它们在应用程序前端工作。但是我不能通过这个测试。我正在使用friendly_id,所以你会看到我在一些查找方法上使用@model.slug

我正在尝试这个测试:

使用这个工厂(请注意,业务和目录工厂是在其他地方定义的,它们是关联):

通过这个表演动作:

但我收到此错误:

此外,此代码块还将指示业务模型尚未收到 find 方法:

0 投票
3 回答
1191 浏览

ruby-on-rails - FriendlyId 在模型验证之前触发。我该如何解决这个问题?

理想情况下,我想要看起来像这样的网址:

/用户/约翰-s

/用户/foo-b

/用户/布拉德-p

我有一个看起来像这样的用户模型:

使用此控制台输出可以最好地解释不良行为:

问题(终于!:))

似乎发生的事情是在我的验证之前调用 FriendlyId 并被first_name触发last_name。这会导致在name对 nil 值调用 capitalize 时方法大便。

我该怎么做才能在调用 FriendlyId 之前触发我的验证?实际上更进一步......为什么在建立任何有效性之前就涉及FriendlyId?

谢谢!!

0 投票
1 回答
1721 浏览

ruby-on-rails - friendly_id,使用历史更新 slug

我使用friendly_id如下:

我希望能够设置 slug(即能够设置自定义 URL)而不更改标题和维护历史中的旧 slug。

有没有一种直接的方法可以使用friendly_id或者我需要与历史表进行交互?

谢谢!

0 投票
1 回答
1659 浏览

ruby-on-rails - friendly_id,从历史记录中删除 slug

我正在friendly_id将该history模块用于一个名为的模型page,并希望能够从friendly_id_slugs表中删除 slug,以便它们不再重定向并可以再次使用。

我想出了几个可能的解决方案,但不确定如何进行:

  1. 创建一个新的模型和控制器,friendly_id_table并像对待任何其他模型一样做事
  2. 添加一个destroy_slug动作来pages_controller.rb查找蛞蝓并销毁它 - 但是,我不确定如何加载蛞蝓,也许FriendlyId::Slug.find()
  3. 在命名空间中创建一个控制器FriendlyId- 不知道怎么做

任何人都可以提出建议作为最好的方法或如何完成#2或#3?谢谢!

0 投票
1 回答
948 浏览

ruby-on-rails - Friendly_id 使用来自 belongs_to 关联的值

我有以下型号:

create_professor被调用并因此执行传递到教授模型(self.professor = Professor.create)时,当它开始尝试在此方法中创建slug时:

我得到一个undefined method first_name for nil:NilClass,所以教授对象似乎不知道他的关联用户是什么。

关于如何解决这个问题的任何提示?

0 投票
3 回答
493 浏览

ruby-on-rails - 在 Rails 中使用用户名 slug/短 URL 时要更改的内容

我对rails很陌生,所以如果我忽略了简单的事情或rails方式,请原谅我。我的目标是完全替换表单的 URL

/users/1

/username

用于所有目的。(我认为公开暴露 ID 的脚手架就像在你的手臂上伸出一根骨头四处走动。)但实施似乎比我预期的要复杂一些。这似乎改变了 rails 索引和查找用户的整个方式,而不仅仅是替换查找方法。

虽然我已经to_param在我的文件中使用覆盖来实现这个功能user.rb,但我已经读过这意味着我在使用时会遇到索引 问题 ,而且我不确定它会如何影响我的params([:username])

(a) 新用户创建时的会话模型,以及

(b) user/show.html.erb 文件中的@User 用法。

因此,我已经查阅了以下页面(或提出了问题):

我想从这个问题中了解的主要问题:

  1. 过渡到这个我会失去什么功能?也就是说,如果我追求这个替换,我必须解决和重写哪些目前在 Rails 中“正常工作”的东西?
  2. 作为一种做法,用friendly_id替换是否更好?我在这里担心的是,在我的数据库中创建一个与用户名相同的 slug 列似乎有点不干燥,让我感到不舒服,我宁愿尽可能避免依赖外部 gem。
  3. 我的 users#show 需要是什么样的?