我的关系中有两个属性 - flyer和flyer_url。我想设置一个if条件,它将flyer或flyer_url分配给flyer_image_url,具体取决于哪个不为null。所有记录都将其中任何一个设置为null。我已经尝试了以下代码,但它只是将flyer_url分配给flyer_image_url,即使它为null:
attribute :flyer => :flyer_image_url
attribute :flyer_url => :flyer_image_url, :if => lambda { |flyer_url| !flyer_url.nil? }
请帮忙! 谢谢!
答案 0 :(得分:0)
感谢RABL的创造者Nathan Esquenazi,我终于得到了答案。
这是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
这就像一个魅力!希望这个答案能找到一个人!