Renderizar vista js.erb en Rails 6.
Tengo una vista en el archivo APP/views/js/library.js.erb, contiene:
bar: <%= raw @foo %>
En Rails 4, obtengo el contenido de esa vista utilizando:
av = ActionView::Base.new(Rails.root.join(‘app’, ‘views’))
av.assign({ foo: my_dynamic_variable })
av.render(template: ‘js/library’)
Pero en Rails 6 obtengo:
NoMethodError: undefined method html_fallback_for_js' for
in_rendering_context’
"app/views/js/library":String
from /home/manuel/.rvm/gems/ruby-3.0.2/gems/actionview-
6.1.4.1/lib/action_view/base.rb:264:in
davy.ai
¿Cuál es la forma correcta de renderizar la vista en Rails 6?
La forma correcta de renderizar la vista en Rails 6 es usando el método
render_to_string
:ruby
av = ActionView::Base.new(Rails.root.join('app', 'views'))
av.assign({ foo: mi_variable_dinámica })
av.render_to_string(template: 'js/library')