Отрисовка частичных элементов пользовательского интерфейса

В рельсах мне часто приходится объявлять партиал, который используется во многих моделях. Например, есть партиал, в котором я хотел бы, чтобы форма была обернута вокруг кнопки, чтобы я мог просто передать контроллер, действие и объект, и этот объект был отправлен в действие этого контроллера. Теперь это не относится ни к одной из моих моделей. Кажется неуместным объявлять файл этого партиала (_processor_button.html.erb) в папке модели.

Как вы предлагаете лучше всего поместить этот файл и как вызвать его оттуда, и предлагаете ли вы совершенно другой подход к примеру, упомянутому выше?


person alik    schedule 08.09.2011    source источник


Ответы (2)


Я храню часто используемые партиалы в views/shared/ и называю их так:

render :partial => "/shared/partial_name"
person apneadiving    schedule 08.09.2011
comment
app/views/shared и app/views/common — самые распространенные из тех, что я видел. - person Adam Eberlin; 08.09.2011

Я всегда добавляю такие партиалы в: app/views/shared/

Допустим частичный лайк;

... shared/_my_form.html.erb ...
<%= form_for(my_obj) do %>
...
...

Затем в ваших представлениях для рендеринга этих частей с разными "my_obj"

... posts/form.html.erb ...

<%= render :partial => "/shared/my_form", :locals => { :my_obj => @post } %>

или как:

... users/form.html.erb ...
<%= render :partial => "/shared/my_form", :locals => { :my_obj => @user} %>
person Deradon    schedule 08.09.2011