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 helpers
在Docs中有详细说明。
在我的 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 helpers
在Docs中有详细说明。