【发布时间】:2014-04-04 16:31:07
【问题描述】:
我有一个模型 Expense.rb,其中一个用户有很多。可以通过 ajax 表单添加新费用,因此我有适当的文件设置(create.js.erb、destroy.js.erb.. 等)
目前,当通过远程表单提交新费用时,create.js.erb 中也会更新金额总和,在我的费用模型中如下所示:
def total_value
Expense.sum(:amount)
end
create.js.erb:
$('#total').html('$<%= number_with_delimiter(@expense.total_value) %>');
问题是这汇总了数据库中的所有费用,而我只需要查找 current_user(我知道模型无法访问)。
在我的控制器中,在索引操作上我这样做:
@expenses = current_user.expenses
@total_value = @expenses.sum(:amount)
这意味着我可以在我的索引视图中为 current_user 获取它,只需执行以下操作:
<%= number_with_delimiter(@total_value) %>
但至于创建动作:
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
我不确定如何将 current_user 传递给模型中的 total_value,以便仅为创建 js.erb 中使用的 total_value 中的 current_user id 求和。
【问题讨论】:
-
@RajeshCO 我正在尝试确定正确的 MVC 方法来执行此操作,我之前看过该链接,不确定里面的任何答案是否是正确的方法。
标签: javascript ruby-on-rails ruby