我希望第3个字段显示前两个字段的算术结果

时间:2015-09-07 16:48:24

标签: ruby-on-rails

我希望rails app的前两个用户输入的整数输入在按下提交按钮后对它们执行某些算术后填充第三个字段。

我使用过rails脚手架。

我是否在下面的控制器代码中将我想要执行的算术函数放在我的变量上?

# POST /pls
  # POST /pls.json


def create
    @pl = Pl.new(pl_params)

respond_to do |format|
  if @pl.save
    format.html { redirect_to @pl, notice: 'Pl was successfully created.' }
    format.json { render :show, status: :created, location: @pl }
  else
    format.html { render :new }
    format.json { render json: @pl.errors, status: :unprocessable_entity }
  end
end

2 个答案:

答案 0 :(得分:0)

你的问题不明确。但对于这一部分,答案是,

  

我是否在下面的控制器代码中将我想要执行的算术函数放在我的变量上?

最佳实践是使用模型方法执行算术运算。出于这个原因,您也可以使用私有控制器方法,并在您需要的地方调用该方法。但是将算术代码推送到create动作中并不是一个好习惯。

答案 1 :(得分:0)

我在before_save回调中实际放入您的Pl模型中的内容,以便如果您的两个用户输入值中的任何一个发生更改,则更新第三个值的值。它看起来像这样:

class Pl < ActiveRecord::Base

    before_save :update_third_value

    def update_third_value
      if first_value_changed? || second_value_changed?
        third_value = first_value / second_value # here is your desired arithmetic
      end
    end
end

查看默认情况下适用于所有型号的ActiveModel::DirtyActiveRecord::Callbacks,其中列出了所有可用的默认回调。