简体   繁体   English

将条件方法(或属性?)附加到Rails模型

[英]Attaching conditional methods(or attributes?) to a rails model

I'm using the friendly_id plugin to generate SEO-friendly URLS for some of my models. 我正在使用friendly_id插件为我的某些模型生成SEO友好的URL。

Currently, I have a model with two attributes: name and display_name. 当前,我有一个具有两个属性的模型:name和display_name。

Essentially, display_name is preferred, but if it is blank, the model reverts to name. 本质上,首选display_name,但如果该参数为空,则模型恢复为name。 Friendly_id needs a field to base the URL off of: Friendly_id需要一个字段来使URL基于以下内容:

Class Market < ActiveRecord::Base
  has_friendly_id :name
end

How can I implement something that looks (logically) like this: 我如何实现(逻辑上)如下所示的内容:

Class Market < ActiveRecord::Base
  if self.display_name
    has_friendly_id :display_name
  else
    has_friendly_id :name
  end
end

Thanks! 谢谢!

Maybe something like this? 也许是这样的?

Class Market < ActiveRecord::Base
  has_friendly_id :friendly_name

  def friendly_name
    self.display_name || self.name
  end
end

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM