Следует ли широко использовать local_assigns.has_key? частично считать кодовым запахом?
У меня есть частичный Rails, который имеет несколько таких проверок:
<%= if local_assigns.has_key?(:show_blabla) && show_blabla == false %>
blabla
<% end %>
Я думаю, что этот вид скрывает реальный список параметров, которые используются такими частичными, и эй local_assigns
даже не в документации.
о чем ты думаешь?
4 ответа
См. "Передача локальных переменных в под-шаблоны" в Class: ActionView::Base для документации по local_assigns
,
На самом деле, эта переменная (local_assigns) задокументирована, хотя ее трудно найти. На самом деле, согласно документации по rails, это рекомендуемый способ проверки определенных переменных. Проверьте rdocs для ActionView::Base
Мой опыт работы с рельсами заключается в том, что всякий раз, когда вы используете функцию, которая не рекламируется как способ работы рельсов и, следовательно, не используется широко, она может перестать работать в любое время.
С другой стороны, я иногда использую его, когда не могу найти другой способ получить отвлекающее поведение.
Я бы порекомендовал использовать определенные?(Show_blabla) и определенные IMO?(Bool) && bool == false - вполне допустимый Ruby.
Но если вам абсолютно необходимо использовать local_assigns, это определенно хак и, скорее всего, какой-то запах кода.