首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于以文本形式编辑JSON对象的Rails窗体

用于以文本形式编辑JSON对象的Rails窗体
EN

Stack Overflow用户
提问于 2013-01-12 08:05:43
回答 2查看 2.1K关注 0票数 1

我想制作一个表单,允许用户将mongoid对象的一个字段编辑为呈现的JSON文本。模型中有一个我的rails应用程序不应该理解的字段,但我想公开一个通用编辑器。因此,对于这个字段,我希望将其呈现为漂亮的JSON,并在一个大的<textarea>中公开它,然后在进行任何编辑后解析回JSON。

我可以想出十几种方法来做到这一点,但我想知道哪种方法最符合Rails的理念,并且与普通的搭建方式的差异最小。我应该在控制器中将对象呈现为JSON文本吗?然后,我必须重复newedit方法中的代码,以及updatecreate方法中的解析代码,这看起来有点笨拙。有没有一种方法可以定义一个帮助器或自定义表单小部件,使其在_form.html.erb中具有更高的可重用性?或者是已经写好的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-12 20:58:20

您可以在模型中创建自己的属性写入器/读取器:

代码语言:javascript
复制
  attr_accessible the_field_raw

  def the_field_raw
    self.the_field.to_s
  end

  def the_field_raw=(value)
    self.the_field = JSON(value)
  end

whitch应该与表单生成器兼容,并且在控制器中没有额外的代码。

希望它能帮上忙!

票数 3
EN

Stack Overflow用户

发布于 2015-12-13 03:19:11

将值序列化为JSON。

代码语言:javascript
复制
class Price < ActiveRecord::Base
   serialize :values, JSON

   validates :start, :end, :values, :presence => true
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14288650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档