У меня есть частичная форма, которая выглядит следующим образом:
<%= form_for(@pool) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :tournament %><br />
<%= f.collection_select :tournament_id, Tournament.active, :id, :name, :prompt => true %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Это похоже на запах кода, потому что представление не должно отвечать за знание того, как получить данные для тега <select>
. Альтернатива для контроллера назначить переменную экземпляра проблематична, потому что мне приходится копировать этот код в нескольких действиях в зависимости от того, визуализируется ли эта форма.
В ASP.NET MVC я просто вытащил это поле в частичное представление и отобразил его с вызовом RenderAction
, который оценил бы общее действие контроллера. Тем не менее, в Rails render :action => '/view'
, по-видимому, позволяет отображать только полноценные представления. Я довольно новичок в Rails, поэтому я не уверен насчет лучших практик.