【发布时间】:2014-04-07 12:10:25
【问题描述】:
在开始之前,我必须说我是 Ruby on rails 的新手。
我有一个名为 Vendor 的模型。我想要一个字段 vendorid,它应该是一个字母数字字段。我想自动增加它。
我也有一个城市,它是同一模型中的下拉选择字段。我希望我的 vendorid 在其值中使用该字段。
例如:如果我的第一个 Vendors 条目的城市为 HYD,我希望我的 vendorid 为 HYD001,如果下一个条目的城市为 DEL,则 vendorid 应为 DEL001,否则如果它的城市再次为 HYD,则应该是 HYD002。
在网上搜索了很多后,我找到了 gem protokoll。但我认为即使这样也无助于我的情况。
class Vendor < ActiveRecord::Base
protokoll :vendorid, :pattern => city + "###"
end
我也试过了:
:pattern => "#{城市}###" :pattern => self.city + "###"
它给我一个错误“#Class:0xb61c4150 的未定义方法 `city'”
感谢您的帮助。
【问题讨论】:
-
Protokoll 看起来会做你想做的事(虽然我自己没有使用过)。 Protokoll 有什么问题?
-
我已经编辑了这篇文章,展示了我对 protokoll 所做的事情以及我的结果。
-
在您的代码中,当 rails 加载时,“city”正在类级别使用。那时它不知道
city是什么。看起来您正在尝试猜测 Protokoll 的语法,以告诉它使用城市值而不是固定字符串。这可能是不可能的,但如果是这样,那绝对不是正确的语法。 -
同样的问题:“self”是类。没有
Vendor.city方法。
标签: mysql ruby-on-rails auto-increment