Rails:使用Textarea:has_many关系

时间:2011-04-19 23:46:45

标签: ruby-on-rails ruby textarea has-many

嘿伙计们,这里的第一个问题。

我有几个产品和用户可以将这些产品放在愿望清单上。 用户可以拥有许多愿望清单(用于不同目的)。 产品可以添加到Wishlists,但还有其他信息:您必须指定某个产品的数量。此逻辑用于包含,其具有字段数量

  Class Wishlist
    belongs_to :user # User class is irrelevant here
    has_many :inclusions
    has_many :products, :through => :inclusions
  end

  Class Product
    has_many :inclusions
    has_many :wishlists, :through => :inclusions
  end

  Class Inclusion
    belongs_to :product
    belongs_to :wishlist
  end

这一切都很有效,但现在是真正的问题。 愿意通过textareas编辑愿望清单。语法很简单: quantity productname 。 所有用户都使用此语法。 例如,编辑愿望清单应如下所示:

<textarea>
    1 Bicycle
    4 Shoe
    1 Telephone
</textarea>

提交表单时,应在幕后处理所有逻辑。因此,如果取消“1电话”,则应销毁包含。如果添加或修改了一行,则应创建或更新相应的包含,以便数据库与该textarea的内容同步。

我搜索过高低,但找不到解决方法。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个坏主意,但为了让你从自己的错误中吸取教训......

  1. 包装textarea-data属性setter方法以包含...
  2. 的功能
  3. 从文本区域的每一行中解析出相关信息,然后......
  4. 为每个人调用原始的setter方法。
  5. 在吸气器上做相反的事情。
  6. 您的验证,关联等仍然有效,并且您处理此问题的逻辑整齐地打包,以便您可以在以后/遇到问题时轻松将其丢弃。