Rails包含JSON中的附加属性

时间:2013-11-28 02:48:22

标签: ruby-on-rails json

def index
    @project = Project.where(id: params[:id]).first

    email = {:email => 'test@mail.com'}

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

运行应用程序时,我会得到如下结果:

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

现在我希望将email作为@project json中的附加属性包含在内。

{"project":{"id":1, "name" => "project name", "email" => "test@mail.com"}}

请注意,email不是表格字段。

怎么做?

抱歉我的英文不好

1 个答案:

答案 0 :(得分:0)

这不可能以您描述的方式进行,至少在没有制作新表单字段的情况下,或者没有想要使用浏览器工具编辑自己的表单的用户。

我认为您的意思是您已经拥有与项目相关联的电子邮件,并且您希望将其与其他信息一起保存到数据库中。如果是这种情况,那么您可以在控制器(创建操作)或模型中处理。我更喜欢控制器,因为无论如何你都明确地从数据库中提取东西。

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

如果重要的是人们无法伪造哪个电子邮件与哪个项目相关联,也不要使用隐藏字段将电子邮件发送到JSON。