减去变量值

时间:2015-09-08 19:57:00

标签: ruby-on-rails

我有一个Rails应用程序,其中用户设置目标号码人员接收杂志的问题,我能够计算他们通过斯普利特注册了该问题的人数,我正在尝试计算差异,以便他们可以看到他们需要添加多少人才能达到目标。

这是我的拆分模型:

class Split < ActiveRecord::Base
    belongs_to :issue
    has_and_belongs_to_many :geographies 
    has_and_belongs_to_many :media 


    @total_selected = Split.sum(:quantity)
    @balance = @Split.issue.target - @total_selected

end

我收到“未定义的方法`问题'”错误消息。

这是我的Splits控制器,其中包含建议的更改。:

class SplitsController < ApplicationController
  before_action :set_split, only: [:show, :edit, :update, :destroy]

  # GET /splits
  # GET /splits.json
  def index
    @splits = Split.all
    @chosen_splits = Issue.find(1).splits
    @balance = split.balance
  end

我对推荐的模型进行了更改。现在我收到的错误是“未定义的局部变量或方法`split'”

非常感谢所有帮助。

1 个答案:

答案 0 :(得分:1)

issue视为实例变量。把它放在一个方法来访问它。

class Split < ActiveRecord::Base
    belongs_to :issue
    has_and_belongs_to_many :geographies 
    has_and_belongs_to_many :media 

    def balance
        issue.target - Split.sum(:quantity)
    end
end

要在视图中添加余额,请查询所需的拆分,将其添加到控制器中的操作:

@balance = split.balance

然后在你看来这样做:

<%= @balance %>