2015-08-31 58 views
0

在我的Rails/Angular應用程序中,我通過Rails序列化程序將數據傳遞到前端,並允許通過params.permit更新字段。Rails:默認序列化程序和safe_params到模型中的所有字段

我明白,序列化程序/ safe_params的目的部分是仔細控制來往服務器的內容。但是,對於大多數模型,我發現我需要包含所有字段。

是否存在元編程或其他方法,其中分頁器和safe_params的主體可以簡單地暴露/接受模型上的所有字段,包括虛擬字段?

實施例代碼

串行

class BatchSerializer < ActiveModel::Serializer 
    attributes :id, 
     :description,  
     :details,   
     :user_id,    
     :name,     
     :dataset,    
     :dataset_id,   
     :pairs_per_sequence, 
     :pairs_per_bp,   
     :batch_type,   
     :overlap_size,   
     :padding,    
     :assembly_id,   
     :multiplex_tolerance, 
     :run_id,     
     :snp_mask,    
     :primer3_parameter_id, 
     :specificity_check, 
     :batch_status, 
     :avoid_cross_primers, 
     :temperature_similarity, 
     :gibbs_free_energy, 
     :base_termination, 
     :wet_lab 
end 

控制器safe_params

def safe_params 
params.permit(:id, 
     :description,  
     :details,   
     :user_id,    
     :name,     
     :dataset,    
     :dataset_id,   
     :pairs_per_sequence, 
     :pairs_per_bp,   
     :batch_type,   
     :overlap_size,   
     :padding,    
     :assembly_id,   
     :multiplex_tolerance, 
     :run_id,     
     :snp_mask,    
     :primer3_parameter_id, 
     :specificity_check, 
     :avoid_cross_primers, 
     :temperature_similarity, 
     :gibbs_free_energy, 
     :base_termination, 
     :wet_lab_result) 
    end 

EDIT

這篇文章提供了一個問題的答案:允許所有 Rails 4 Strong parameters : permit all attributes?

那麼我將如何自動序列化所有字段?

+0

當調用'to_json'時,您可以(重新)定義'as_json'方法來定義您希望在模型上序列化哪些屬性。 – Nathan

回答

1

如果您只是停止傳入序列化程序,則Rails將使用默認顯示所有屬性的默認序列化程序。

例如,假設你有一個叫MyObject模型,你可以渲染:

render :json => my_object 

重:允許所有屬性 - 你可以看看Rails 4 Strong parameters : permit all attributes?了點。

相關問題