0

我刚开始从务实的程序员'Agile Web Development with Rails'那里学习Ruby on Rails。

我写了一个小应用程序,当我运行它时,我收到以下语法错误:

/Users/colinlabri/Desktop/depot/app/models/product.rb:2: syntax error, unexpected ':',   expecting keyword_end
  attr_accessible : title, :description, :image_url, :price
                   ^
/Users/colinlabri/Desktop/depot/app/models/product.rb:2: syntax error, unexpected ',', expecting tCOLON2 or '[' or '.'
  attr_accessible : title, :description, :image_url, :price
                                        ^
 Rails.root: /Users/colinlabri/Desktop/depot

Application Trace | Framework Trace | Full Trace

app/controllers/products_controller.rb:1:in `<top (required)>'

DB的代码如下:

class CreateProducts < ActiveRecord::Migration
  def change
    create_table :products do |t|
      t.string : title
      t.text :description
      t.string :image_url
      t.decimal :price, precision: 8, scale: 2

      t.timestamps
    end
  end
end

版本如下: ruby​​ 1.9.3p362 Rails 3.2.11

我应该检查我的 sqlite 安装吗?如何检查?

4

2 回答 2

1

您只需要修复此行:

t.string : title

到:

t.string :title

您的模型在attr_accessible通话中也有同样的问题。

于 2013-01-21T22:47:33.227 回答
0

:something实际上是 Ruby 中的符号。:和符号名称之间不能有任何空格。

在迁移文件中更改t.string : title为。t.string :title

在您的产品模型中,

更改attr_accessible : titleattr_accessible :title

于 2013-01-21T22:47:45.953 回答