Comment analyser un hachage ruby dans une balise <script>
dans mon fichier index.html.erb
?Analyser le hachage ruby dans une balise script dans un fichier index.html.erb
Le contrôleur:
@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' } }
Dans le index.html.erb, cela produirait javascript erreur de syntaxe:
<script>
var options = <%= @full_calendar_options %>;
Comme il produirait:
var options = {:theme=>true, :header=>{:left=>"month,agendaWeek,agendaDay", :center=>"title", :right=>"prev,next"} ...
Quand je envelopper la capture de rubis avec une chaîne, je ne reçois aucune erreur:
var options = '<%= @full_calendar_options %>';
Mais il produit:
var options = '{:theme=>true, :header=>{:left=>"month,agendaWeek,agendaDay", :center=>"title", :right=>"prev,next"}, ...
qui est une chaîne codée. Ce n'est pas JSON, donc je ne peux pas l'analyser en un littéral d'objet. J'essaie d'obtenir l'objet littéral en JavaScript. Quel est le meilleur moyen d'y parvenir?
Pourquoi dois-je utiliser inspecter aussi? Pourquoi to_json ne fonctionnerait-il pas? – Donato
Oups, vous avez raison. 'to_json' fonctionnera correctement sans' inspect'. –
Je pense que html_safe pourrait aussi être requis: @ full_calendar_options.to_json.html_safe – Donato