Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取当前用户的总和,可通过js.erb部分_Javascript_Ruby On Rails_Ruby - Fatal编程技术网

Javascript 获取当前用户的总和,可通过js.erb部分

Javascript 获取当前用户的总和,可通过js.erb部分,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我有一个model Expense.rb,其中一个用户有许多。可以通过ajax表单添加新费用,因此我有相应的文件设置create.js.erb、destroy.js.erb。。等 当前,当通过远程表单提交新费用时,create.js.erb中的金额总和也会更新,在我的费用模型中如下所示: def total_value Expense.sum(:amount) end create.js.erb: $'total'.html'$ 问题是这将数据库中的所有费用相加,而我只需要为当前用户查

我有一个model Expense.rb,其中一个用户有许多。可以通过ajax表单添加新费用,因此我有相应的文件设置create.js.erb、destroy.js.erb。。等

当前,当通过远程表单提交新费用时,create.js.erb中的金额总和也会更新,在我的费用模型中如下所示:

def total_value
    Expense.sum(:amount)
end
create.js.erb:

$'total'.html'$

问题是这将数据库中的所有费用相加,而我只需要为当前用户查找我知道无法从模型中访问的内容

在我的控制器内,在索引操作上,我是这样做的:

@expenses = current_user.expenses
    @total_value = @expenses.sum(:amount)
这意味着我可以在我的索引视图中为当前用户获取它,只需执行以下操作:

但对于创建操作:

def create
    @expense = Expense.new(secure_params)
    @expense.user = User.find(current_user.id)
    @expense.save
    respond_to do |format|
      format.html { redirect_to index_expense_path }
      format.js
    end
  end
我不知道如何在模型中将当前用户传递给total值,以便在create js.erb中使用total值对当前用户id求和

问题是,这将数据库中的所有费用相加,而我需要 仅查找我知道无法从中访问的当前用户 模型

也许您可以使用作用域并将用户id传递给它:

问题是,这将数据库中的所有费用相加,而我需要 仅查找我知道无法从中访问的当前用户 模型

也许您可以使用作用域并将用户id传递给它:


费用。总和:金额取出所有费用记录

改变

def total_value
    Expense.sum(:amount)
end
致:

会叫自己,就这样做

current_user.expenses.total_value 

如果你做了开支,它应该会起作用。总值仍然会起作用。

开支。总和:金额将删除所有开支记录

改变

def total_value
    Expense.sum(:amount)
end
致:

会叫自己,就这样做

current_user.expenses.total_value 

应该有效,如果您进行了开支。total_value仍将有效。

您的用户模型中不需要total_expenses方法吗:

Class User

  has_many :expenses

  def total_expenses
    expenses.sum(:amount)
  end
end
那你就可以打电话了

current_user.total_expenses 

您的用户模型中是否不需要total_expenses方法:

Class User

  has_many :expenses

  def total_expenses
    expenses.sum(:amount)
  end
end
那你就可以打电话了

current_user.total_expenses 

参考@RajeshCO我正在尝试确定正确的MVC方法,我以前看到过该链接,不确定其中的任何答案是否是正确的方法。参考@RajeshCO我正在尝试确定正确的MVC方法,我以前看到过该链接,不确定里面的答案是否正确。谢谢你的回答。最终不需要使用scope。谢谢您的回答。最终不需要使用范围。