在我的实例模型的“创建”操作中,我有:
@my_json_page = {}
@my_json_page["title"] = params[:title].to_json
@my_json_page["headline"] = params[:headline].to_json
@instance.profile_page_json = @my_json_page
在“编辑”操作中,我尝试解析它:
@parsed_json = ActiveSupport::JSON.decode(@instance.profile_page_json)
在编辑视图中,我收到了'标题字段':
%input{:type=>"text", :value=>@parsed_json["title"],:name=>"title", :style=>"width: 815px;"}
它说“MultiJson :: LoadError(795:'---'的意外标记
我不确定如何创建json对象以便以后方便地解析它。我可能做错了。如果有人能指导我,真的很感激。 感谢
答案 0 :(得分:1)
不确定我是否理解你需要做什么,但是
@instance.profile_page_json = {"title" => params[:title], "headline" => params[:headline]}.to_json
'create'动作中的应该对你有帮助。
但恕我直言,最好的方法是将params散列保存而不对变量进行编码并从视图中获取。像这样:
#in the controller
@parsed_json = params
#in the view
%input{:type=>"text", :value=>@parsed_json["title"],:name=>"title", :style=>"width: 815px;"}
你甚至可以尝试直接从视图访问params方法(不确定,但你可以试试)