2017-08-04 9 views
0

私の関係には、flyerとflyer_urlの2つの属性があります。 flyerまたはflyer_urlをnullになっていない場合に応じてflyer_image_urlに割り当てるif条件を設定します。すべてのレコードのいずれかがnullに設定されています。私は、次のコードを試してみたが、それがnullの場合でもflyer_image_urlするflyer_urlを割り当てている。RABLの条件

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

助けてください! ありがとうございます!

答えて

0

RABLの作成者、Nathan Esquenaziのおかげで、私はついに答えました。

これはRABLの制限事項ですが、指定されたキー名 "flyer_image_url"には関連する文が1つだけ必要です。単一のキーに関連付けられた2つのステートメントを持つことを試みることは、ここで混乱の原因となっています。

彼は、代わりにカスタムロジックを単一のノードを使用することを提案:魅力のように働いた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 

!この答えが誰かを見つけることを願っています!