我有一个Ruby on Rails应用程序,其中有销售机会。用户根据他们认为它属于销售渠道的位置对每个商机进行评级。这被设置为当前在Sales Opportunity模型上的枚举,用户只需从下拉列表中选择适当的阶段。这些阶段包括" Prospecting"," Qualifying"," Demonstrating"," Negotiating"," Closed Won",& #34;关闭失去"和"休眠"。
我现在正在为产品的高级部分构建更复杂的功能 - 特别是我希望能够向用户回答的销售机会添加问题 - 例如"潜在客户是否有预算?"如果是的话:"他们的预算是多少?"等
根据这些问题的答案,我想向用户显示一个结果,告诉他们应该所属的销售渠道中的哪个位置,而不是目前的位置。
我在考虑将一个qualifying_questions类关系添加到Sales_Opportunity.rb:
class SalesOpportunity < ActiveRecord::Base
belongs_to :user
enum pipeline_status: [ :prospect, :qualifying, :demonstrating, :negotiating, :closed_won, :closed_lost, :dormant ]
has_many :qualifying_questions
end
然后创建QualifyingQuestions类:
class QualifyingQuestions < ActiveRecord::Base
belongs_to :sales_opportunity
end
但这是我陷入困境的地方。每个问题都可能具有不同的特征 - 例如在我上面的例子中,第一个问题的答案是一个布尔值(他们有预算吗?)而下一个(假设答案是肯定的)是一个fixnum(例如$ 20,000)或一个选择器说&#34; unknown& #34;或者如果他们没有预算(对第一个问题回答否),我想问一下#34;是否有分配预算的流程?&#34;等
我可以为我提出的每个问题创建一个类,并相应地设置数据类型 - 但这似乎是代码大量膨胀,这意味着我的问题需要硬编码到应用程序中。理想情况下,我希望我的用户能够为销售过程中的每个阶段定义自己的问题,因此我应该尝试将其设计为对未来的灵活性。
我确信这对我来说是一种直截了当的方式,但我还没有足够的经验去了解它。任何人都可以帮我指出正确的方向吗?