Я пытаюсь получить link_to, чтобы отобразить частичный через jquery ajax, но не может заставить его работать (редактирование: возврат пустого экрана), и я не уверен, что я Нет. Любая помощь будет оценена.
Я хотел бы нажать ссылку "Предварительный виджет" и отобразить _widget.html.erb в превью .
По моему мнению, ссылка "Preview Widget" должна вызывать действие def preview_widget, которое вызывает preview_widget.js.erb, которое затем отображает частичный _widget.html.erb в div.
EDIT: обновляет ссылку в соответствии с предложениями Ignatius Reza
show.html.erb
<%= link_to "Preview Widget", :action => 'preview_widget' , :id => @widget.id, :remote => true %> %>
<div id="preview"></div>
widget_controller.rb
def preview_widget
respond_to do | format |
format.js {render :layout => false}
end
end
preview_widget.js.erb
$( "#preview" ).html( "<%= escape_javascript( render( :partial => "widget", :locals => { :widget => @widget} ) ) %>" );
_widget.html.erb
<% @widget.videos.each do |video| %>
<h3><a href='#'><%= video.name %></a></h3>
<div>
<object height='316' width='540'>
<embed style='border: 1px solid #333333;' height='316' width='540' allowfullscreen='true' allowscriptaccess='always' type='application/x-shockwave-flash' src='<%= video.url %>'>
</object>
</div>
<% end %>
routes.rb
match 'preview_widget' => 'widgets#preview_widget'