9

我有一个由 Rails 3 脚手架生成的基本视图设置。它给了我一个局部视图_form.html.erb。我的edit.html.erb和我的new.html.erb都呈现了这个局部视图。

在局部视图中,我希望有一个链接到不同的路径,具体取决于它是由视图还是编辑视图呈现。

是否有捷径可寻?

我的代码目前看起来像这样,但不允许使用不同的路径。

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

如果有帮助,我会尝试将它们发送回它们来自的页面(它们来自不同的地方进行添加和编辑)

4

3 回答 3

48

您可以使用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 %>
于 2010-12-08T14:19:21.730 回答
5

我对rails 3不太熟悉。但希望这对你有用

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

祝你好运:D

于 2010-12-08T12:18:54.837 回答
0

看看link_to(:back)

这可能是您在这里所需要的。

于 2010-12-08T12:33:29.887 回答