我想制作一个表单,允许用户将mongoid对象的一个字段编辑为呈现的JSON文本。模型中有一个我的rails应用程序不应该理解的字段,但我想公开一个通用编辑器。因此,对于这个字段,我希望将其呈现为漂亮的JSON,并在一个大的<textarea>中公开它,然后在进行任何编辑后解析回JSON。
我可以想出十几种方法来做到这一点,但我想知道哪种方法最符合Rails的理念,并且与普通的搭建方式的差异最小。我应该在控制器中将对象呈现为JSON文本吗?然后,我必须重复new和edit方法中的代码,以及update和create方法中的解析代码,这看起来有点笨拙。有没有一种方法可以定义一个帮助器或自定义表单小部件,使其在_form.html.erb中具有更高的可重用性?或者是已经写好的?
发布于 2013-01-12 20:58:20
您可以在模型中创建自己的属性写入器/读取器:
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)
endwhitch应该与表单生成器兼容,并且在控制器中没有额外的代码。
希望它能帮上忙!
发布于 2015-12-13 03:19:11
将值序列化为JSON。
class Price < ActiveRecord::Base
serialize :values, JSON
validates :start, :end, :values, :presence => true
endhttps://stackoverflow.com/questions/14288650
复制相似问题