Rails,动态用户定义字段

时间:2012-11-28 17:09:20

标签: ruby-on-rails

我的问题如下:

我有两种型号:产品和产品品牌。 目前,在产品形式中,用户可以为他的产品挑选品牌(通过选择列表)。但如果该品牌不存在,他可以通过点击重定向到品牌/新表格的链接来创建一个新品牌。

有没有办法直接在产品公式中处理缺失的品牌创作?

我希望我足够清楚。

感谢您的回答。

2 个答案:

答案 0 :(得分:1)

在表单中,您可以允许用户从下拉列表中选择品牌在文本字段中键入新品牌的名称。我会使用无线电来强制用户执行这两个动作之一,而不是两者。 <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])

答案 1 :(得分:0)

我个人会使用jQuery这样的东西。让用户从选择列表中选择“新品牌”之类的内容,然后显示输入提示。使用AJAX创建新品牌,然后在选择新品牌的形式中重新创建品牌列表。