我的问题如下:
我有两个型号:产品和品牌。当前在产品表单中,用户能够选择其产品的品牌(通过选择列表)。但如果该品牌不存在,他可以通过单击重定向到该品牌/新表单的链接来创建一个新的品牌。
有没有办法直接处理产品配方中缺少的品牌创建?
我希望我说得够清楚了。
谢谢你的回答。
发布于 2012-11-29 01:19:56
在表单本身中,您可以允许用户从下拉中选择品牌,或者在文本字段中键入新品牌的名称。我会使用无线电来强制用户执行这两个操作中的一个,而不是两个。<option>元素将具有与品牌名称相对应的值,而不是品牌ID。
然后,在Rails方面,您可以使用find_or_create_by_name,假设您的品牌名称是唯一的:
# assuming a params structure like params[:product][:brand_name]
class Product < ActiveRecord::Base
def brand_name=(name)
self.brand = Brand.find_or_create_by_name(name)
end
end控制器仍然会简单地做这样的事情:
@product = Product.new(params[:product])发布于 2012-11-29 01:24:58
我个人会使用jQuery来做这样的事情。让用户从选择列表中选择类似"New Brand“的内容,然后显示输入提示。使用AJAX创建新品牌,然后在表单中重新创建选择了新品牌的品牌列表。
https://stackoverflow.com/questions/13610614
复制相似问题