2013-11-28 48 views
0
def index 
    @project = Project.where(id: params[:id]).first 

    email = {:email => '[email protected]'} 

    respond_to do |format| 
     format.json { render :json => @project } 
    end 
end 

附加屬性當運行應用程序時,我會得到的結果是這樣的:Rails的包括JSON

{"project":{"id":1, "name" => "project name"}} 

現在我想email被包括在@project JSON的附加屬性。

{"project":{"id":1, "name" => "project name", "email" => "[email protected]"}} 

注意email不是表場。

如何做到這一點?

對不起,我英文不好

+0

看看這個http://stackoverflow.com/questions/6892044/add-virtual-attribute-to-json-output –

回答

0

這是不可能的,你描述,至少在沒有作出新的表單字段的方式,或者沒有誰希望與他們的瀏覽器工具來編輯自己的表格的用戶。

我認爲你的意思是你已經有一個與項目相關的電子郵件,並且你想用其餘的信息將其保存到數據庫中。如果是這種情況,那麼你可以在控制器(創建操作)或模型中處理它。無論如何,我更喜歡控制器,因爲你明確地從數據庫中提取事物。

您可以在@project.save之前執行類似@project.email = #{some logic that goes and gets it here}的操作。

如果人們無法僞造哪個電子郵件與哪個項目相關聯,那麼也不要使用隱藏字段將電子郵件轉換爲JSON。