我有一个嵌套的形式。该表单是一个名为list的模型,它具有:name和a:month属性。这个列表模型在被调用的项目中嵌入了另一个模型,它具有:name和:amount属性。一个列表有很多项目,一个项目属于一个列表。我创建了我的控制器,总计所有的项目数量这样的变量(不知道这是最好的方式):显示来自Rails 3中不同条目的变量值?
@amount_total = Item.where(:list_id => @list).sum("amount")
我把这个变量在我的列表显示页面,它显示了总所有项目金额为当前列表ID。我想要做的是能够将当前列表总数与之前输入的列表进行比较。是否有可能使用这样的变量?如果是这样,怎么样?如果不是,我该怎么办?
编辑
在我的节目在控制器我有采取行动的以下(基于下面的答案):
@list = List.find(params[:id])
但我需要创建变量@previous_list,这样的事情:
@previous_list = List.order("id").where("id<? AND user_id=?", self.id, self.user_id).last
我需要找到以前输入的列表,但为同一个用户。但是,当我用这种方式把它变成变量时,它说有一个未定义的方法“user_id”。思考?
您的用户模型与List具有belongs_to关系吗?列表是否与用户有has_many关系?另外,您可能想使用created_at来排序查询,而不是id。 Id不一定是按时间顺序排列的,而created_at总会是。 – ipd 2011-04-30 15:39:02