所以我在我的Rails应用程序中有一个Customer模型,每当创建一个新客户时,我从用户那里得到一个数字作为输入,我希望该数字成为我数据库中客户的id而不是默认值1 ,2,3等等。有可能吗?如果是这样,怎么样?
编辑:让我更清楚一下我的想法:我有一个客户和一个品牌模型。客户拥有多个品牌,品牌属于客户。每当用户创建新品牌时,我都希望使用用户为客户输入的号码将其连接到客户。现在,每当用户创建一个新品牌时,我都要求他输入customer_id值以将品牌连接到客户,但这是Rails生成的ID号。如何使customer_id属性引用用户为客户输入的特定数字,而不是Rails生成的客户ID。答案 0 :(得分:1)
这是可能的,但不要这样做。只需允许Rails管理自动生成的ID本身,并将此数字 - 无论它是什么 - 添加为模型中的单独属性并保存到数据库中的单独字段。
答案 1 :(得分:0)
如上所述,您可以执行以下操作:
1.首先,生成一个添加自定义属性的迁移
rails g migration AddCustomerIdToCustomers customer_id:integer
2.当用户输入ID时,您可能希望执行以下操作:
@customer.customer_id=params[:customer_id]
@customer.save
3.然后您可以将自定义对象检索为
@customer = Customer.find_by_customer_id(customer_id)
其中customer_id是您想要的ID。
正如上面的答案所示,最好让Rails处理id属性,因为它在Rails中广泛用于处理数据库关系ActiveRecord查询等。你不希望自己修改它的额外麻烦。