rails - .find从数据库返回数据但缺少列

时间:2012-08-30 19:07:54

标签: mysql ruby-on-rails ruby-on-rails-3 object find

好的,我希望标题足够描述,但这是我的问题。 (我是rails的新手,所以如果我还需要更多信息请告诉我)

我有一个表单来编辑edit.html.erb上的用户这会传递一个@user对象。我的控制器上的代码是:

def edit
    @user = User.find(params[:id])
end

我正在使用该对象预先填充edit.html.erb页面上的字段。以下是我的数据库中用户的列:

id
username
name
email
admin
active
created_at
updated_at

我的问题是,由于某种原因,email的值不在对象之外,因此所有值都向左移动。例如,在<%= @user.inspect %>页面上使用edit.html.erb,这就是我得到的结果:

<User id: 2, username: "exampleuser1", name: "Kaylee Kuhic", nickname: "exampleuser1", email: "Default", selected_color_scheme: "0", is_admin: true, active: nil, date_last_logged_in: "2012-08-30 19:28:31", created_at: "2012-08-30 19:28:31", updated_at: nil>

这只是一个我正在修补的测试应用程序所以我可能已经移动了一个专栏。这会影响它吗? 控制器和可能影响对象的视图之间发生了什么?

此外,当我在rails控制台中运行User.find(params[:id])时,我会正确地返回所有数据:

<User id: 2, username: "exampleuser1", name: "Kaylee Kuhic", nickname: "exampleuser1", email: "exampleuser1@example.com", selected_color_scheme: "Default", is_admin: true, active: true, date_last_logged_in: nil, created_at: "2012-08-30 19:28:31", updated_at: "2012-08-30 19:28:31">

有什么想法?再次,对不起,如果我遗漏了任何重要信息。

1 个答案:

答案 0 :(得分:0)

听起来您需要使用rake db重建数据库:drop db:create db:migrate

这将删除数据库中的所有数据,但由于这是一个测试应用程序,我认为没问题。