Функция контроллера для coffeescript - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь сделать расчет, который был сделан в контроллере на стороне клиента.Вот функция

  def how_much
    @price = (params[:amount])
    @mortgage = (params[:high_rent])
    @rent = (params[:current_rent])

    if @price && @mortgage && @rent.present?
      @monthly_savings = @mortgage - @rent
      @savings_goal = @price*0.03
      @months_to_buy = (@savings_goal/@monthly_savings).to_i
      @total_savings = @monthly_savings * @months_to_buy
    else
      @months_to_buy = 24
      @total_savings = "great savings"

    respond_to do |format|
        format.json { render json: {:months_to_buy => @months_to_buy, :total_savings => @total_savings}}
      end
    end

Это правильный CoffeeScript?Я не знаком и не имею проблем.Это то, что я имею до сих пор, но я не уверен, что это правильно, и я не уверен, как это назвать.

price = document.getElementsByName('house_amount').value
mortgage = document.getElementsByName('high_rent').value
rent = document.getElementsByName('current_rent').value
MonthlySavings: (mortgage, rent) ->
 if mortgage? && rent?
   parseFloat(mortgage) - parseFloat(rent)
SavingsGoal: (price) ->
 if price?
   parseFloat(price) * 0.03
MonthsToBuy: (Savings_goal,MonthlySavings) ->
 if SavingsGoal? && MonthlySavings?
   parseFloat(SavingsGoal)/parseFloat(MonthlySavings)
TotalSavings: (MonthlySavings,MonthsToBuy) ->
 if MonthlySavings? && MonthsToBuy?
   parseFloat(MonthlySavings) * parseFloat(MonthsToBuy)

Он должен быть вызван из этой формы и использоваться в модальном.

1 Ответ

0 голосов
/ 29 мая 2018

Ваше наименование повсюду.Savings_goal должно быть SavingsGoal и так далее.Вам не хватает нескольких if в ваших методах coffescript, а @ означает this, что вы не хотите делать в этих методах, когда вы передаете переменные в качестве аргумента функциям.Я не могу вспомнить функцию number? в coffeescript.

Я исправлю два для вас, а остальное оставлю для вас:

 MonthlySavings: (mortgage, rent) ->
   if mortgage? && rent?
     parseFloat(mortgage) - parseFloat(rent)
 SavingsGoal: (price) ->
   if price?
     parseFloat(price) * 0.03
...