我想知道两者的区别
render('shared/comment', comment: @comment)
和
render('shared/comment', locals: {comment: @comment})
对我来说,有时第一种方法可以工作,但有时第二种方法....
我想知道两者的区别
render('shared/comment', comment: @comment)
和
render('shared/comment', locals: {comment: @comment})
对我来说,有时第一种方法可以工作,但有时第二种方法....
每当您对 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
。