如何在我的index.html.erb
文件中解析<script>
标记中的红宝石散列?在index.html.erb文件的脚本标记中解析ruby散列
控制器:
@full_calendar_options = { theme: true, header: { left: 'month,agendaWeek,agendaDay', center: 'title', right: 'prev,next' }, defaultView: 'agendaWeek', buttonIcons: { prev: 'calendar-left-arrow', next: 'calendar-right-arrow' } }
在index.html.erb,这将产生JavaScript语法错误:
<script>
var options = <%= @full_calendar_options %>;
,因为它会产生:
var options = {:theme=>true, :header=>{:left=>"month,agendaWeek,agendaDay", :center=>"title", :right=>"prev,next"} ...
当我用一个字符串包装红宝石捕获,我得到没有错误:
var options = '<%= @full_calendar_options %>';
但是它产生:
var options = '{:theme=>true, :header=>{:left=>"month,agendaWeek,agendaDay", :center=>"title", :right=>"prev,next"}, ...
这是一个编码的字符串。它不是JSON,所以我不能将它解析为对象字面值。我试图在JavaScript中获取对象字面值。达到此目的的最佳方法是什么?
我为什么一定要用检查吗?为什么不会to_json正常工作? – Donato
糟糕,你是对的。 'to_json'可以在没有'inspect'的情况下正常工作。 –
我认为html_safe可能也需要:@ full_calendar_options.to_json.html_safe – Donato