0

我正在使用 rails 在我的应用程序中创建一个 sqlite 表,我尝试了一个教程中的示例,我输入了命令:

rails generate scaffold Product \
     title:string description:text image_url:string price:decimal

但是,当我运行时,它起作用并生成了一个表

rake db:migrate

它出现了一些问题:

SyntaxError in ProductsController#index
products_controller.rb:72: syntax error, unexpected ':', expecting ')' ...rams.require(:product).permit(: title, :description, :image_... ... ^ 

于是查了一下表格,发现title和string之间多了一个空格,是这样的:

title : string
description :text
image_url :string
price :decimal

然后我改变了它和相应的控制器。控制器在我更改之前是这样的,这里还有一个额外的空间:

 def product_params
      params.require(:product).permit(: title, :description, :image_url, :price)
    end

之后,每当我尝试创建表时,同样的问题一次又一次地出现。第一个属性总是有一个额外的空间,而后面的属性没有。所以有人知道是什么问题吗?太感谢了!:)

4

1 回答 1

0

可能有点晚了,但请删除,\以便 rails 生成器看起来像:

rails generate scaffold Product title:string description:text image_url:string price:decimal

\用于表示多行命令中的行尾,当你使用它时,按回车键继续写下一行。(^在窗户上)。

如果您已经创建了数据库,则可以使用以下方法重建它:

rails generate scaffold Product title:string description:text image_url:string price:decimal --force

如果像我一样,您在 Rails 4 的敏捷 Web 开发中找到了该代码;上一段解释了\.

希望几个月前那个小路障没有把你从铁轨上推开!

于 2014-02-11T23:08:32.013 回答