【发布时间】:2018-04-16 19:52:33
【问题描述】:
我正在为我的公司产品开发的 Rails 应用程序面临设计问题。我的应用程序允许创建两个类,它们是父类的子类。
class Coupon
include Commonelements
end
class ServiceCenterCoupon < Coupon
end
class DealershipCoupon < Coupon
end
当您转到视图并想要创建新优惠券时,您可以选择两者中的任何一个,然后根据参数 [:coupon_type] 创建新优惠券
在控制器中:
if params[:coupon_type] == 'dealershipcoupon'
@coupon = DealershipCoupon.new(coupon_params)
if @coupon.save!
redirect_to @coupon
else
render :new
end
elsif params[:coupon_type] == 'servicecentercoupon'
@coupon = ServiceCenterCoupon.new(coupon_params)
if @coupon.save!
redirect_to @coupon
else
render :new
end
end
我也想让管理员用户能够在运行时创建新的优惠券类型。比如说,有人想创建 Repairshopcoupons 类。 我需要对视图进行哪些更改,例如添加一个新表单或者我需要向现有表单添加哪些参数才能在运行时创建新的优惠券子类? p>
我明白使用
repairshopcoupon = Class.new()
可以工作。例如,控制器中的此代码之类的匿名函数可以工作:
Repairshopcoupon = Class.new(Coupon) do
include ActiveModel::Validations
validates_presence_of :title
def self.name
"Oil Change"
end
end
@newrepairshopcoupon = Repairshopcoupon.new
@newrepairshopcoupon.save
但我不确定。
我的第一个问题是:如果我希望用户从视图中创建新类,那么正确的流程是什么。控制器应该处理什么以及它将如何保存?
我的第二个问题是:很少有客户同时属于经销商和服务中心组。每个组都有权管理他们可以管理的优惠券类型。我希望属于多个组的这些用户能够查看各自的优惠券库存以及哪些用户下载了这些库存。我觉得有必要更改我的数据模型,以便所有优惠券库存和下载列表完全属于一个授权组,但我不知道什么是最好的方法。
我的第三个问题是:更改我的视图/UX 以创建和管理优惠券以便多个组的用户能够在每个库存之间切换的最佳方法是什么?在这种情况下,UX 设计的专业行业标准是什么?
非常感谢您的帮助。
【问题讨论】:
-
您应该将自己限制在一个问题上。尤其是当它们像这样广泛时。
标签: ruby-on-rails ruby class oop anonymous