我知道你可以明確列出領域像這樣,有什麼方法可以隱藏Rails Jbuilder模板中的屬性嗎?
json.(model, :field_one, :field_two, :field_three)
但有什麼類似於以下,
json.(model, except: :field_two)
這將輸出所有的模型領域,除了一個叫出來?
我知道你可以明確列出領域像這樣,有什麼方法可以隱藏Rails Jbuilder模板中的屬性嗎?
json.(model, :field_one, :field_two, :field_three)
但有什麼類似於以下,
json.(model, except: :field_two)
這將輸出所有的模型領域,除了一個叫出來?
嘗試json.merge! model.attributes.except("field_one", "field_two")
我做過這樣的事情。 獲取模型的所有所需屬性的數組
model.attributes.keys.map { |key| key.to_sym } - [:field_one, :field_two]
哪些可以這樣寫
model.attributes.keys.map(&:to_sym) - [:field_one, :field_two]
然後啪的陣列,同時通過在JBuilder中
json.(model, *(model.attributes.keys.map(&:to_sym) - [:field_one, :field_two]))
這寶石是你需要的。
json.except! @resource, :id, :updated_at
對於非ActiveRecord對象此相似的模式工作(軌道4)
json.merge! @some_object.as_json.except("not_this_one")
你試過'json.merge! model.attributes.except(「field_one」,「field_two」)'? – mmichael
@mmichael工作!似乎有一個更簡單的方法... – sambecker