Вторая форма
render :partial => 'account', :object => @some_account
гарантирует, что переменная account
в частичном будет установлена на @some_account
.
Вы можете переименовать переменную, используя параметр :as
.
Самым большим преимуществом :locals
является то, что
- у вас очень четкий контроль над объектами и именами
- Вы можете назначить более 1 переменной
Так что вы могли бы сделать что-то вроде
render partial => 'some_view', :locals => { :user => account.user, :details => some_details_we_retrieved }
делает возможным четкое разделение при необходимости.
Недостаток подхода :locals
заключается в том, что он более многословный, а иногда и простой
render :partial => 'account'
идентично
render :partial => 'account', :locals => {:account => @account }
Так что используйте тот, который подходит вам лучше всего (или там, где он подходит лучше всего).