使用 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/