Rails,SQLException:没有这样的列
重新检查代码,重新启动计算机,然后运行rake db:migrate,我不知道还有什么可以做的。 我一直收到以下错误:
SQLite3::SQLException: no such column: uploads.user_id: SELECT COUNT(*) FROM "uploads" WHERE "uploads"."user_id" = 1 Extracted source (around line #12): 9: 10: 11: 12: 13: Uploads ()
14: 15:
这与has_many关联有什么关系吗?
show.html.erb
Uploads ()
upload.rb
class Upload < ActiveRecord::Base attr_accessible :title belongs_to :user validates :title, presence: true validates :user_id, presence: true default_scope order: 'uploads.created_at DESC' end
user.rb
class User < ActiveRecord::Base attr_accessible :name, :email, :password, :password_confirmation has_secure_password has_many :uploads, dependent: :destroy before_save { |user| user.email = email.downcase } before_save :create_remember_token validates :name, presence: true, length: { maximum: 50 } VALID_EMAIL_REGEX = /\A[\w+\-.]+@[az\d\-.]+\.[az]+\z/i validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false } validates :password, length: { minimum: 6 } validates :password_confirmation, presence: true private def create_remember_token self.remember_token = SecureRandom.urlsafe_base64 end end
来自users_controller.rb
def show @user = User.find(params[:id]) @uploads = @user.uploads.paginate(page: params[:page]) end
20120524145724_create_uploads.rb
class CreateUploads < ActiveRecord::Migration def self.up create_table :uploads do |t| t.string :title t.integer :user_id t.timestamps end add_index :uploads, [:user_id, :created_at] end def self.down drop_table :uploads end end
运行迁移后,如果更新它,rails将不会重新运行它(它不知道您所做的更改)。
在编辑之前回滚迁移(rake db:rollback)或创建添加额外列的新迁移。
迁移可能会失败一些,如果你有一些错误,例如它不会工作。 确保它确实运行,你可以检查你的sqlite数据库,看看是否有user_id
Interesting Posts
UsersController中的ActiveModel :: ForbiddenAttributesError #create
Ruby SSL握手没有收到服务器Hello回来 – 使用代理Net :: HTTP
Ruby中的`try`和`&.`(安全导航操作符)有什么区别?
错误无法在Windows 7×64上构建json gem native扩展
尝试使用嵌套属性创建表单
如何在Rails中显示URL指向的图像
如何与康康人分页?
Solr / Lucene是否可以先按相关性排序,然后按第二个属性排序?
AWS Elastic Beanstalk中的worker“dyno”
在向Rails4应用程序添加授权后,RSpec控制器规范失败