[英]If condition on RABL
我的關系中有兩個屬性-Flyer和Flyer_url。 我想放置一個if條件,該條件根據不為null的情況將flyer或flyer_url分配給flyer_image_url。 所有記錄都將其中一個設置為null。 我已經嘗試了以下代碼,但是即使它為null,它也只是將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
那就像一個魅力! 希望這個答案能找到人!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.