2017-08-04 54 views
0

我有我的关系,两个属性的条件 - 传单和flyer_url。我想要放置一个if条件,该条件将flyer或flyer_url分配给flyer_image_url,具体取决于哪个不是null。所有记录都将它们中的任何一个设置为null。我试着下面的代码,但它仅分配到flyer_url flyer_image_url即使是空:如果Rabl的

attribute :flyer => :flyer_image_url 
attribute :flyer_url => :flyer_image_url, :if => lambda { |flyer_url| !flyer_url.nil? } 

请帮帮忙! 谢谢!

回答

0

感谢弥敦道Esquenazi - Rabl的创作者,我终于得到了答案。

这是一个限制(虽然有点故意)Rabl的的,对于给定的键名“flyer_image_url”应该永远只能是与之关联的单个语句。尝试使用与单个关键字相关的两个语句是造成这里混乱的原因。

他建议使用一个单一的节点,而不是用自定义逻辑:https://github.com/nesquena/rabl#custom-nodes

node :flyer_image_url do |object| 
    object.flyer_url.nil? ? object.flyer : object.flyer_url 
    # This is just ruby, put whatever you want that ends up as a string 
end 

这工作就像一个魅力!希望这个答案找到某人!