在控制器中渲染部分

时间:2014-03-30 00:12:08

标签: ruby-on-rails ruby-on-rails-4 partials

我想用控制器中的局部渲染部分。我无法在任何地方找到这种语法(在部分/视图或谷歌搜索上都没有Rails文档)。

我可以让这个动作的视图只包含一个部分,但这听起来像是一个额外的复杂层,我想避免。使用(controller - > partial)代替(controller - > action的视图 - > partial)看起来更干净。也许我的直觉是错的?

http://guides.rubyonrails.org/layouts_and_rendering.html#using-render

def show
  render 'some_partial', locals: { test => 'hello' }
end

给出错误:

wrong number of arguments (0 for 2..3)

1 个答案:

答案 0 :(得分:1)

部分应该从模板或布局渲染,它们是部分视图而不是完整视图,更新show.html.erb以呈现部分需要显示的部分

如果你真的想渲染部分,那么试试

render :partial => 'some_partial', :locals => { :test => "hello" }

或者更新的Rails 4语法

render partial: 'some_partial', locals: { test: "Hello" }