控制器上的渲染与视图中的渲染相同吗?如何从控制器调用“视图”渲染?

时间:2016-07-03 15:08:46

标签: ruby-on-rails

我在执行ajax请求时有一个非常简单的js逻辑,所以我有一个respond_to块,我想指定js inline的回复,所以我试着这样做:

respond_to do |format|
  format.html
  format.js { render js: "$('ul#slides').append('#{j(render @slide)}');" }
end

问题是这会抛出一个重复的渲染错误,(因为我在渲染中渲染),但是,如果我将这段代码放在视图中,这是如何工作的?如何在控制器上调用“视图”渲染?

1 个答案:

答案 0 :(得分:0)

嘿,让我们用render_to_string方法来完成这个:

respond_to do |format|
  format.html
  format.js do
    slide_html = render_to_string(partial: @slide)
    render js: "$('ul#slides').append('#{slide_html}');" }
  end
end