Ruby on rails RubyonRails表单计算器
我想为我的应用程序构建一个计算器。在用户保存记录之前,它应该能够在表单上输入一些变量,并点击“计算”按钮查看“他需要多少个单元来构建一些东西” 我创建了一条自定义路线:Ruby on rails RubyonRails表单计算器,ruby-on-rails,ruby,simple-form,Ruby On Rails,Ruby,Simple Form,我想为我的应用程序构建一个计算器。在用户保存记录之前,它应该能够在表单上输入一些变量,并点击“计算”按钮查看“他需要多少个单元来构建一些东西” 我创建了一条自定义路线: get 'product_stock_calculator/:product_id', to: 'product_stocks#calculator' class ProductStock < ActiveRecord::Base ... end class ProductStocksControlle
get 'product_stock_calculator/:product_id', to: 'product_stocks#calculator'
class ProductStock < ActiveRecord::Base
...
end
class ProductStocksController < ApplicationController
...
def calculator
@product_stock = ProductStock.new
@product_stock.product_id = params[:product_id]
end
...
end
型号:
get 'product_stock_calculator/:product_id', to: 'product_stocks#calculator'
class ProductStock < ActiveRecord::Base
...
end
class ProductStocksController < ApplicationController
...
def calculator
@product_stock = ProductStock.new
@product_stock.product_id = params[:product_id]
end
...
end
class-ProductStock
控制器:
get 'product_stock_calculator/:product_id', to: 'product_stocks#calculator'
class ProductStock < ActiveRecord::Base
...
end
class ProductStocksController < ApplicationController
...
def calculator
@product_stock = ProductStock.new
@product_stock.product_id = params[:product_id]
end
...
end
class ProductStocksController
查看:
product_stocks/calculator.html.erb
<%= simple_form_for(@product_stock) do |f| %>
<div class="form-inputs">
<%= f.input :product_id, label: 'Producto', collection: Product.all, required: true %>
<%= f.input :number_of_boxes, label: 'Units to build', required: true %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
product\u stocks/calculator.html.erb
如何在不保存记录的情况下提交表单、进行一些计算并呈现视图以显示计算结果?与您所做的任何事情的方式相同 将表单提交到指向控制器操作的路由,在该路由中,您将根据参数执行计算 例如: routes.rb:
match '/calculate', to "productstocks#calculate", via: 'post', as: :calculate
在控制器中:
def calculate
@productstock = Productstock.new(productstock_params) # strong parameters here
@result = params[:productstock][:param1] * params[:productstock][:param2] # for example
render 'calculator' # this will render with the unsaved
# new @producstock and you can use @result too in your view
end
您将表单的操作设置为
计算路径
,看起来您真的想在自定义操作中使用“表单标签”,而不是尝试基于资源的路由。可能需要更多信息才能正确回答。