我在新视图和编辑视图中呈现了一个表单:
<%= simple_form_for(@course, html: {class: "form-horizontal"}) do |f| %>
由于我的编辑表单应略有不同:simple_form_for([@category, @course])
,有没有办法根据控制器操作(编辑或新建)编写条件?
# if controller action is new
<%= simple_form_for(@course, html: {class: "form-horizontal"}) do |f| %>
#if controller action is edit
<%= simple_form_for([@category, @course], html: {class: "form-horizontal"}) do |f| %>
答案 0 :(得分:3)
您可以使用action_name
<% if action_name == 'edit' %>
#
<% else %>
#
<% end %>
或者为了非常安全,还要使用controller_name
<% if controller_name == 'cources' && action_name == 'edit' %>
答案 1 :(得分:2)
您可以使用此代码:
- 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?辅助方法