Частичная форма в рельсах 3, нуждающаяся в другой ссылке в зависимости от New или Edit - PullRequest
8 голосов
/ 08 декабря 2010

У меня есть базовая настройка представлений, созданная скаффолдингами Rails 3. Это дает мне частичное представление _form.html.erb . И мой edit.html.erb , и мой new.html.erb отображают это частичное представление.

В частичном представлении я хочу иметь link_to, который идет по разным путям в зависимости от того, отображается ли он в new или edit view.

Есть ли простой способ сделать это?

В настоящее время мой код выглядит так, но не позволяет использовать разные пути.

<%= f.submit %> or <%= link_to 'Go back', models_path %>

Если это поможет, я пытаюсь отправить их обратно на страницу, с которой они пришли (они приходят из разных мест для добавления и редактирования)

Ответы [ 3 ]

46 голосов
/ 08 декабря 2010

Вы можете использовать form.object.new_record? вместо params [: action] , чтобы узнать, редактируете ли вы или создаете (редактировать вид или новый вид).

Например:

<%= simple_form_for(@item) do |f| %>  
    <% if @item.new_record? %>  
       <%= f.input :lost_time, input_html: { value: DateTime.now } %>  
    <% else %>                      
       <%= f.input :lost_time, input_html: { value: @item.lost_time } %>    
    <% end %>
<% end %>
4 голосов
/ 08 декабря 2010

Я не очень знаком с рельсами 3. Но надеюсь, что это сработает для вас

<% if params[:action] == 'new' %>
    # code for new
<% elsif params[:action] == 'edit' %>
    # code for edit
<% end %>

УДАЧИ: D

0 голосов
/ 08 декабря 2010

Посмотрите на link_to (: назад) .

Это может быть то, что вам нужно здесь.

...