ruby-on-rails - Rails gem "friendly_id": How to get a live preview of the slug, 在它的对象被创建之前

标签 ruby-on-rails gem slug friendly-id live-preview

使用 Rails gem“friendly_id”,是否可以获得要创建的 slug 的“实时预览”?在保存对象之前,即(并在使用 ajax 请求键入时返回)?

如果有,怎么做?

最佳答案

FriendyId作者在这里。

FriendlyId 在内部使用私有(private) set_slug 来执行此操作。此方法通过 before_validation 回调调用。如果由于某种原因你不想调用 valid?,你可以通过 send 调用 set_slug 方法,或者在你的模型中定义一个方法调用它:

instance = ModelClass.new
instance.send(:set_slug)

# or
class ModelClass < ActiveRecord::Base
  friendly_id :name, use: :slugged

  def generate_slug_preview
    set_slug
  end
end 

但是,请注意,绕过或忽略验证通常是一个坏主意。例如,如果您的模型包含对 name 字段的验证,然后您将该字段用作 slug 的基础,那么您正在预览一个实际上永远不会生成的 slug。

关于ruby-on-rails - Rails gem "friendly_id": How to get a live preview of the slug, 在它的对象被创建之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20478420/

相关文章:

ruby-on-rails - 检验 gem 的正确方法

python - 管理 django 的 slug

php - 在 codeigniter 中使用 slug

ruby-on-rails - resque rails 4.2 deliver_later 邮件程序

ruby-on-rails - 在 Rails 中通过 simple_form_for 传递数据时获取 NotNullViolation

ruby-on-rails - 如何使用 dali 和 Rails 将 memcached slab 大小增加到 1MB 以上?

Ruby gem curb 不会安装在 Windows 7 上,即使我使用 libcurl

ruby-on-rails - 使用 Webpack 在 Rails 6 上设置 Bootstrap 4.3

ruby - 无法安装 Nokogiri gem,找不到 "libxml/parser.h",但它在那里,为什么?

php - CakePHP 通过 slug 而不是 ID 过滤列表