1

我想知道两者的区别

   render('shared/comment', comment: @comment) 

   render('shared/comment', locals: {comment: @comment}) 

对我来说,有时第一种方法可以工作,但有时第二种方法....

4

1 回答 1

1

每当您对 Rails 方法的参数有疑问时,我建议您查看apidock,因为它允许您切换 rails 版本,如果随着时间的推移发生变化,这会很方便。

可以看到ActionController:Base上有一个 render 方法,我认为最喜欢的是ActiveView:Template

ActionController方法具有以下签名:

render(options = nil, extra_options = {}, &block)

并且ActionView有以下一个:

render(view, locals, buffer=nil, &block)

所以基本上你locals:在调用不推荐使用的方法时需要使用ActionController,并且在使用时不需要传递它ActionView

于 2013-04-22T15:01:48.440 回答