0

我在用户输入报价的网站(如投标系统)上需要重新定价的代码有问题,但报价将得到验证,如果高于保留价,则接受,如果低于,再试一次等.

关于如何在 ruby​​ on rails 中执行此操作的指针的任何想法?我为用户完成了大部分代码,只是这部分我发现很难研究。

因此,他们的用户将有一个输入字段,他们在验证之前输入价格。(明显地)

4

1 回答 1

1

您没有提供太多关于您的业务对象的信息,因此我将做出一些假设。我的假设是:

  1. 您正在制作 eBay 克隆,因此您有两个相关模型:ItemBid.
  2. 一个Item可以有多个出价
  3. Item有一个属性,reserve_price(小数?)
  4. ABid有一个属性,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 的自定义验证器。在此示例中,如果amount指定的 forBid不符合 的保留价格,Item则不会创建出价,并且会提供一条错误消息,您可以向用户显示。

于 2012-07-16T17:33:10.960 回答