2017-08-04 82 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 

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