Rails创建其他创建操作并将新操作重定向到该操作

时间:2019-01-05 17:22:44

标签: ruby-on-rails

假设我要创建其他创建操作。我们称之为create2。

items_controller:

def new 
@item = Item.new
and

def create
.....
end

def create2
.....
end

项目/表格:

<%= simple_form_for (@item) do |f| %>
<%= f.input :name %>
<%= f.submit %>
<%= end %>

路线:

post 'create2', to: 'items#create2', as: :create2

提交表单后,如何使其执行create2而不是create?

1 个答案:

答案 0 :(得分:3)

例如,您的模型是具有users_controller的用户,而您想要创建另一个“新创建”

在路线内添加这样的内容

resources :users do
  collection {
    get  :new_special_user
    post :create_special_user
  }
end

在users_controller内部,您创建2个方法

def new_special_user

end

def create_special_user

end

在new_special_user.html.erb内,其URL将直接指向用户控制器中的create_special_user方法,下面是示例

<%= form_for @user, url: create_special_user_users_path do |f| %>

<% end %>