У меня есть страница с именем cashcount, и на этой странице я хочу, чтобы пользователь мог вводить сумму в четверть, десять центов, никелей, пенни (в количестве, а не в стоимости), номер каждого типа счета и т. Д.в текстовые поля формы.
Когда пользователь нажимает кнопку для отправки данных, я хотел бы автоматически суммировать все поля в их денежные значения и сохранить их в моем поле shifts.startcash (котороетипа десятичного).
Каков наилучший способ настроить эту форму?
Вот мой pages_controller.rb
# Cash Count
def cashcount
@title = "Count Cashbox"
@shift = Shift.find(session[:shift_id])
end
Я знаю, что в контроллере моей смены я, вероятно, захочусоздайте метод, такой как def update_cashstart или что-то в этом роде, чтобы я мог взять значения из текстовых полей и суммировать их, но я не уверен, как это сделать.
Обновленный код:
Это то, что я написал, но, похоже, ничего не обновляется:
countcash.html.erb:
<%= form_for :shift do |f| %>
<div class="coins">
Coins: <br />
Quarters: <%= f.text_field :quarters %><br />
Dimes: <%= f.text_field :dimes %><br />
Nickels: <%= f.text_field :nickels %><br />
Pennies: <%= f.text_field :pennies %><br /><br />
</div>
<div class="bills">
Bills: <br />
Twenties: <%= f.text_field :twenties %><br />
Tens: <%= f.text_field :tens %><br />
Fives: <%= f.text_field :fives %><br />
Ones: <%= f.text_field :ones %><br /><br />
</div>
<div class="other">
Please enter the dollar amount of any other money in the drawer:
Other: <%= f.text_field :others %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Shift.rb
before_save :sum_coinage, :unless => :all_coins_blank?
def all_coins_blank?
if (@quarters.nil? and @nickels.nil? and @dimes.nil? and @pennies.nil? and @twenties.nil? and @tens.nil? and @fives.nil? and @ones.nil? and @others.nil?)
true
else
false
end
end
def sum_coinage
self.cashstart = ((@quarters * 0.25) + (@nickels * 0.05) + (@dimes * 0.10) + (@pennies * 0.01) + (@twenties * 20) + (@tens * 10) + (@fives * 5) + @ones + @others)
end
Это выходные данные сервера rails:
Started POST "/countcash" for 127.0.0.1 at Mon Aug 08 17:22:30 -0400 2011
Processing by PagesController#countcash as HTML
Parameters: {"commit"=>"Save Shift", "shift"=>{"quarters"=>"55", "others"=>"", "tens"=>"", "fives"=>"", "dimes"=>"5", "ones"=>"", "pennies"=>"", "twenties"=>"", "nickels"=>""}, "authenticity_token"=>"IQsaKJARVrQOveEC/UTll2iFZ0OWvRmvNxGkqI6DRLE=", "utf8"=>"✓"}
Кажется, эти обновления не помещаются в актуальную базу данных: |