我希望在Rails 4应用程序中构建一组简单的计算器,我对如何设置模型和控制器感到有些不知所措。
在这个例子中,我有一系列计算器,它们具有非常相似但在某些情况下略有不同的输入/变量和略有不同的计算方法。
我的第一次尝试是简单地创建一个没有模型的计算器控制器,但很快就会失去我将处理诸如形式参数和计算逻辑之类的东西。
考虑到计算器需要一些稍微不同的输入和计算方法,创建模型对我来说也没什么意义。
最后,在这种情况下,创建多个模型似乎也是一种非常混乱的方法。
所以考虑到所有这些,我想知道是否有人能告诉我Rails如何解决这个问题。如果有助于获得更多信息,我希望构建与以下电子表格集相同的方法:http://www.widerfunnel.com/proof/roi-calculators
任何帮助都会受到重视!
答案 0 :(得分:6)
你应该记住,Rails不仅仅是关于MVC。您可以创建自定义类,并在模型或控制器中使用它们。
在这种情况下,您可以在app / lib中创建一个Calculator类,并在控制器中使用它。例如:
# app/lib/calculator.rb
class Calculator
def self.sum(a, b)
a.to_i + b.to_i
end
def self.subtr(a, b)
a.to_i - b.to_i
end
end
# app/controllers/calculator_controller
class CalculatorController < ApplicationController
def index
end
def new
@result = Calculator.send(params[:operation], *[params[:a], params[:b]])
render :index
end
end
# app/views/calculator/index.html.erb
<%= form_for :calculator, url: { action: :new }, method: :get do |f| %>
<%= number_field_tag :a, params[:a] %>
<%= select_tag :operation, options_for_select([['+', :sum], ['-', :subtr]], params[:operation]) %>
<%= number_field_tag :b, params[:b] %>
<%= f.submit 'Calculate!' %>
<% end %>
<% unless @result.nil? %>
<p> = <%= @result %> </p>
<% end %>
这只是一个非常简单的例子,说明通过创建自己的类并在Rails上使用它们可以做什么。
)