0

环境:带有设计的Rails 3.2.3

我想在注册表中添加一个注册码。注册码不在用户表中。有一个单独的registration_codes。它出现在注册表单中的原因是,我想将用户填写注册表单时输入的代码与注册表单中的代码进行比较,并生成一个将进入用户表的值。

我收到一条错误消息:

undefined method `registration_code' for #<User:0x007f91b57b7890>

它指向在views/registrations/new.html.erb中显示registration_code文本框的代码

如何解决registration_code 不属于users 表的事实?表单运行良好,直到我将registration_code 字段添加到表单中。

4

2 回答 2

1

我会在您的用户模型中创建一个处理您的注册代码逻辑的方法:

def registration_code=(code)
  # Check registation_codes table and produce a value that will go into the users table
end

提交带有这个新字段的表单现在应该使用提交的值调用这个方法

于 2012-07-20T05:45:37.807 回答
1

我假设您正在使用表单构建器来创建表单(form_for块)。在这种情况下,您可能正在使用类似<%= f.text_field :registration_code %>显示文本字段的东西,但 Rails 在 User 模型上找不到registration_code,因为正如您所说,它不存在。

相反,请尝试使用<%= text_field_tag :registration_code %>. 你可以通过你的控制器访问它params[:registration_code]

于 2012-07-20T05:46:58.147 回答