我应该如何向Ruby on Rails应用程序添加一系列问题

时间:2015-12-31 01:01:56

标签: ruby-on-rails

我有一个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;等

我可以为我提出的每个问题创建一个类,并相应地设置数据类型 - 但这似乎是代码大量膨胀,这意味着我的问题需要硬编码到应用程序中。理想情况下,我希望我的用户能够为销售过程中的每个阶段定义自己的问题,因此我应该尝试将其设计为对未来的灵活性。

我确信这对我来说是一种直截了当的方式,但我还没有足够的经验去了解它。任何人都可以帮我指出正确的方向吗?

0 个答案:

没有答案