2013-11-28 49 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。