Ruby 在 Rails 上:两个不同的 "new" 操作

Ruby on Rails: Two different "new" actions

在我的 transactions 控制器中,我有操作 "topup" 和 "purchase"。两者都在做与 "new" 动作类似的事情。

在我的 "view" 控制器中我有提交按钮,在两个视图中这些按钮应该导致 "create" 操作。

如何设置?

最简单的方法是在两个地方使用相同的表格。

在每个操作的控制器中,使用任何内容创建一个新事务 根据充值或购买需要的属性。

def topup
  ...
  @transaction = Transaction.new
end

def purchase
  ...
  @transaction = Transaction.new
end

然后在浏览量中

<%= form_for @transaction do |form| %>
... needed fields
<% end %>

您可以自己设置form action url。只需为两个表单提供 :url 参数即可。

示例:

<%= form_for :your_resource, url: create_path do |f| %>
    ...
<%= end %>

当然,您还必须在 routes.rb 中添加 create_path

post 'create', as: create  # <= This is just an example for your routes!

form helpersDocs中有详细说明。