问题标签 [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.
ruby-on-rails - Rails FriendlyId 和 normalize_friendly_id
试图让我的应用程序运行FriendlyId gem(版本 4.0.1)
我认为我这样做的顺序错误,但我想在创建新记录时生成friendly_id slug之前去掉撇号。但是我认为在已经生成 id 之后调用了normalize_friend_id方法。
我已将以下内容添加到我的模型中:
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
字段,但它是空的,我不确定我在哪里出错了。如果有人碰巧以前遇到过这种情况,任何建议将不胜感激。谢谢你。
ruby-on-rails - friendly_id,种子数据库,未定义的方法“friendly_id”
在 Rails 3 应用程序中,我正在尝试为使用的模型编写种子(在 db/seeds.rb 中)friendly_id
:
当我运行rake db:seed
任务失败。以下是运行时的要点--trace
:
这是模型:
我friendly_id
用作宝石:
有什么帮助吗?
ruby-on-rails - 在 FriendlyID slug 中隐藏资源名称
我正在使用 FriendlyID 为我的一些模型制作 slug。
要使用 FriendlyID 文档 ( http://rubydoc.info/github/norman/friendly_id/master/frames ) 中提供的示例,我的 URL 当前如下所示:
鉴于在我的情况下,一个城市除了餐馆什么都没有,我正在寻找一种方法来删除 URL 中的“restaurants”位,使其看起来像这样:
或者如果可能的话
实现这一目标的最佳方法是什么 - 如果这样做是可取的?我可以想象最后一个选项可能会产生一些复杂性。
ruby-on-rails - Rails Factory Girl RSpec 测试有很多嵌套资源的关系
注意:一个企业有很多目录,有产品,一个目录有很多产品。关联已正确定义,并且它们在应用程序前端工作。但是我不能通过这个测试。我正在使用friendly_id,所以你会看到我在一些查找方法上使用@model.slug
我正在尝试这个测试:
使用这个工厂(请注意,业务和目录工厂是在其他地方定义的,它们是关联):
通过这个表演动作:
但我收到此错误:
此外,此代码块还将指示业务模型尚未收到 find 方法:
ruby-on-rails - FriendlyId 在模型验证之前触发。我该如何解决这个问题?
理想情况下,我想要看起来像这样的网址:
/用户/约翰-s
/用户/foo-b
/用户/布拉德-p
我有一个看起来像这样的用户模型:
使用此控制台输出可以最好地解释不良行为:
问题(终于!:))
似乎发生的事情是在我的验证之前调用 FriendlyId 并被first_name
触发last_name
。这会导致在name
对 nil 值调用 capitalize 时方法大便。
我该怎么做才能在调用 FriendlyId 之前触发我的验证?实际上更进一步......为什么在建立任何有效性之前就涉及FriendlyId?
谢谢!!
ruby-on-rails - friendly_id,使用历史更新 slug
我使用friendly_id
如下:
我希望能够设置 slug(即能够设置自定义 URL)而不更改标题和维护历史中的旧 slug。
有没有一种直接的方法可以使用friendly_id
或者我需要与历史表进行交互?
谢谢!
ruby-on-rails - friendly_id,从历史记录中删除 slug
我正在friendly_id
将该history
模块用于一个名为的模型page
,并希望能够从friendly_id_slugs
表中删除 slug,以便它们不再重定向并可以再次使用。
我想出了几个可能的解决方案,但不确定如何进行:
- 创建一个新的模型和控制器,
friendly_id_table
并像对待任何其他模型一样做事 - 添加一个
destroy_slug
动作来pages_controller.rb
查找蛞蝓并销毁它 - 但是,我不确定如何加载蛞蝓,也许FriendlyId::Slug.find()
- 在命名空间中创建一个控制器
FriendlyId
- 不知道怎么做
任何人都可以提出建议作为最好的方法或如何完成#2或#3?谢谢!
ruby-on-rails - Friendly_id 使用来自 belongs_to 关联的值
我有以下型号:
在create_professor
被调用并因此执行传递到教授模型(self.professor = Professor.create
)时,当它开始尝试在此方法中创建slug时:
我得到一个undefined method first_name for nil:NilClass
,所以教授对象似乎不知道他的关联用户是什么。
关于如何解决这个问题的任何提示?
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 用法。
因此,我已经查阅了以下页面(或提出了问题):
- Ruby on rails 路由匹配用户名
- 使用用户名自定义 rails url
- Rails 中的路由使用户名成为 URL:
- 路由错误:url 中的用户名
- 在 Rails 中按用户名正确路由短 url
- rails3,干净的 url,friendly_id,会话
我想从这个问题中了解的主要问题:
- 过渡到这个我会失去什么功能?也就是说,如果我追求这个替换,我必须解决和重写哪些目前在 Rails 中“正常工作”的东西?
- 作为一种做法,用friendly_id替换是否更好?我在这里担心的是,在我的数据库中创建一个与用户名相同的 slug 列似乎有点不干燥,让我感到不舒服,我宁愿尽可能避免依赖外部 gem。
- 我的 users#show 需要是什么样的?