更新实例变量而不更新模型轨道

时间:2015-03-17 11:19:10

标签: ruby-on-rails activerecord instance-variables

我有以下型号......

ItemAttribute(id: integer, name: string count: integer)

在我的控制器中,我想设置一个自定义数量的计数,我可以在我的视图中使用...

@building = ItemAttribute.find_by_name("wall")
# the following line of code updates the model as well as the instance variable (not what I want)
@building.update_attribute(:count,10)
# the following line of code doesn't update the model (desired), but the value also resets back to the model's value in the view (not desired)...
@buildings.find_by_name("wall").count = 10

我在视图的循环中使用count属性。 wall实例恰好是一种特殊情况,这就是为什么我只想在视图中更新属性。

1 个答案:

答案 0 :(得分:0)

您只需在控制器中设置一个实例变量,然后在视图中访问该变量即可。

@building = ItemAttribute.find_by_name("wall")
@count = 10

然后在您的视图中访问@count。该实例变量仅适用于请求,并且可供控制器和视图使用。

不确定您的最后一行尝试做什么,它将10分配给活动记录对象列表的计数。

获得10面墙

@buildings = Building.find_by_name("wall").limit(10)

要建造名称=='墙壁的建筑物。和计数== 10

@buildings = Building.where(name: "wall", count: 10)