0
我有一个问题,需要在用户输入报价的网站上有售后价格,比如招标系统,但报价将被验证,如果高于储备它被接受,如果下面,再试一次等。底价网站上的价格
任何想法的指导如何做到这一点在轨道上的红宝石?我为用户完成了大部分代码,这只是我发现很难研究的部分。
因此,他们的用户将有一个输入字段,他们在验证之前输入价格。 (很明显)
我有一个问题,需要在用户输入报价的网站上有售后价格,比如招标系统,但报价将被验证,如果高于储备它被接受,如果下面,再试一次等。底价网站上的价格
任何想法的指导如何做到这一点在轨道上的红宝石?我为用户完成了大部分代码,这只是我发现很难研究的部分。
因此,他们的用户将有一个输入字段,他们在验证之前输入价格。 (很明显)
您没有提供有关您的业务对象的很多信息,因此无法将其作为一个非常复杂的问题,因此我将做出一些假设。我的假设是:
Item
和Bid
。Item
可以有多个投标Item
有一个属性,reserve_price
(小数点?)Bid
有一个属性,amount
(也是十进制)如果你只想创建出价符合它所属的Item
的底价时,您需要使用自定义验证器。这是通过在您的模型中调用validate
完成的,并在您的模型验证通过时将其传递给您要调用的方法的名称(作为符号)。像这样:
class Bid < ActiveRecord::Base
belongs_to :item
validate :ensure_meets_reserve_price
private
def ensure_meets_reserve_price
if amount < self.item.reserve_price
errors.add(:amount, "does not meet reserve price")
end
end
end
请记住,这是对您的需求做了很多假设,但希望这可以证明Rails的自定义验证器。在此示例中,如果为Bid
指定的amount
未达到Item
的底价,则不会创建出价,并且会提供您可以向用户显示的错误消息。
感谢您的回复!它的大学项目:)在几天内到期!如果消费者去我们的网站并可以看到产品,他们可以选择在不知道储备的情况下对该产品提供报价,因此基本上如果产品的rrp为100欧元,他们不知道我们的最低报价价格,所以他们然后提出55说,我们的最低价格是60所以它被拒绝,他们提出了60和它的接受等他们只有3提供可用等非常感谢!我强调了试图找出这部分! – user1529597 2012-07-16 20:25:59
很高兴我能帮到你。确保在模型中执行此操作以及所有类似的与数据相关的操作,而不是控制器。保持该控制器瘦。祝你的项目好运。 – 2012-07-16 22:05:49
干杯很多appricated!对我来说困难的部分是搞清楚把所有这些模型放在哪里哈哈:)只有几个星期的轨道! – user1529597 2012-07-16 22:38:03