修改数据库时出现NoMethodError

时间:2019-03-27 02:12:35

标签: ruby-on-rails ruby

我正在做铁轨的初学者练习。我正在创建一个在数据库中创建新文章的应用程序。我有:

class CreateArticles < ActiveRecord::Migration[5.2]
  def change
    create_table :articles do |t|
      t.string :title
      t.text :body

      t.timestamps
    end
  end
end

运行Article.string时,收到以下消息:

NoMethodError (undefined method `title=' for #<Article:0x00007f8d5d4d6100>)

该应用似乎无法识别方法stringtext。 我正在使用ruby 2.5.3。本教程使用2.2。这可能是这个问题吗?

3 个答案:

答案 0 :(得分:0)

尝试此命令

rails g model Article title:string body:text

但是我认为问题在于您提到的方法Article.string。难道您是要执行Article.all而不是从数据库查询articles表中的所有记录?

答案 1 :(得分:0)

运行

article = Article.new article.title => nil

article = Article.new article.title = 'Your name' article.body = 'Some text' article.save

因为标题可以由任何使用ORM的文章实例访问。

此处字符串是列标题的数据类型。不是方法

PS:如果出现迁移错误,请运行rake db:migrate。

答案 2 :(得分:0)

谢谢大家。出于某种原因,将Ruby版本降级可以解决此问题。