基于Rails 4中新建和编辑表单的控制器操作的条件

我有一个在新视图和编辑视图中呈现的表单:

 

由于我的编辑forms应该略有不同: simple_form_for([@category, @course]) ,有没有办法根据控制器动作(编辑或新建)编写条件?

 # if controller action is new  #if controller action is edit  

您可以使用action_name

 <% if action_name == 'edit' %> # <% else %> # <% end %> 

或者为了非常安全,还要使用controller_name

 <% if controller_name == 'cources' && action_name == 'edit' %> 

您可以使用此代码:

 - array_object = @course.new_record? ? [@course] : [@category, @course] 

要么

 - array_object = action_name == 'new' ? [@course] : [@category, @course] 

然后执行以下操作:

 <%= simple_form_for(array_object, html: {class: "form-horizontal"}) do |f| %> 

了解new_record? 辅助方法