我想知道
之间的区别 render('shared/comment', comment: @comment)
和
render('shared/comment', locals: {comment: @comment})
对我来说,有时第一种方法可行,但有时第二种方法......
答案 0 :(得分:1)
每当您对Rails方法的参数有疑问时,我建议您查看apidock,因为它允许您切换rails版本,如果事情随时间发生变化,这可能很方便。
你可以看到ActionController:Base上有一个渲染方法,我认为最喜欢的一个来自ActiveView:Template
ActionController
方法具有以下签名:
render(options = nil, extra_options = {}, &block)
ActionView
有以下一个:
render(view, locals, buffer=nil, &block)
因此,当您从locals:
调用已弃用的方法时,基本上需要使用ActionController
,并且在使用ActionView
时不需要传递它。