如果条件在 RABL
If condition on RABL
我的关系中有两个属性 - 传单和 flyer_url。我想放置一个 if 条件,根据哪个不为空,将 flyer 或 flyer_url 分配给 flyer_image_url。所有记录都将其中一个设置为空。我试过下面的代码,但它只分配 flyer_url 给 flyer_image_url 即使它是空的:
attribute :flyer => :flyer_image_url
attribute :flyer_url => :flyer_image_url, :if => lambda { |flyer_url| !flyer_url.nil? }
请帮忙!
谢谢!!
感谢 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
太棒了!希望这个答案能找到人!
我的关系中有两个属性 - 传单和 flyer_url。我想放置一个 if 条件,根据哪个不为空,将 flyer 或 flyer_url 分配给 flyer_image_url。所有记录都将其中一个设置为空。我试过下面的代码,但它只分配 flyer_url 给 flyer_image_url 即使它是空的:
attribute :flyer => :flyer_image_url
attribute :flyer_url => :flyer_image_url, :if => lambda { |flyer_url| !flyer_url.nil? }
请帮忙! 谢谢!!
感谢 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
太棒了!希望这个答案能找到人!