Ruby on rails RubyonRails:在我的模型中基于另一个字段设置数据
我有一个Ruby on rails RubyonRails:在我的模型中基于另一个字段设置数据,ruby-on-rails,autocomplete,Ruby On Rails,Autocomplete,我有一个项目模型,它有一个名称和一个价格(int)。我怎样才能做到当用户从下拉列表中选择名称时,价格会自动添加到数据库中 我的name下拉列表由以下格式的散列填充:THINGS={'item1'=>'item1','item2'=>'item2',等等}我认为一个大的switch语句 case s when hammer item.price = 15 when nails item.price = 5 when screwdriver
项目
模型,它有一个名称
和一个价格
(int)。我怎样才能做到当用户从下拉列表中选择名称时,价格会自动添加到数据库中
我的name
下拉列表由以下格式的散列填充:THINGS={'item1'=>'item1','item2'=>'item2',等等}
我认为一个大的switch语句
case s
when hammer
item.price = 15
when nails
item.price = 5
when screwdriver
item.price = 7
end
但我不确定我会把这个开关放在哪里
谢谢您需要在保存回调之前将其推入
在这个回调中,您检查用户选择的名称并更新价格
class Item
before_save :update_price
def update_price
self.price = Product.find_by_name(self.name).price
end
end
如果您想验证您的价格是否真的在模型中定义,您也可以在验证之前进行
class Item
before_validation :update_price
validates_presence_of :price
def update_price
self.price = Product.find_by_name(self.name).price
end
end
这不是我想要的。我有一个散列项目,我需要将散列项目与价格自动关联。所以基本上,我有东西={'A Hammer'=>'Hammer','Some钉子'=>'Nails',等等}
。我需要的是一种制作方法,这样当选择“锤子”时,就可以设定10的价格。事实上,我已经算出了。谢谢你的帮助!