我有一个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'”
非常感谢所有帮助。
答案 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 %>