2013-10-11 86 views
3

我試圖生成一些模型,但它們正在生成沒有屬性。爲什麼rails會生成空模型?

我使用的是Linux系統和軌道的版本是: 軌--version 的Rails 4.0.0

我試圖用這個命令生成模型:

rails g scaffold Bsdsd description:string test:string oaso:integer 

rails g model Asdsd description:string test:string oaso:integer 

在這個空類模型一切OK了第一個結果:

​​

第二個結果的測試文件,遷移文件(包含屬性),這類模型:

class Asdsd < ActiveRecord::Base 
end 

我如何解決此問題?

+0

你期望生成的模型包含什麼? –

+0

class Adress Alexandre

+5

不,Rails不會爲您做到這一點。您必須自己定義輔助功能,否則,默認情況下,所有字段默認都是attr_accessible。 –

回答

6

模型屬性是從數據庫列中推斷出來的,因此您不需要它們在模型類中指定它們。

在Rails 3.2你有(如果我沒記錯)

# attr_accessible :description, :test, :oaso 

線產生。但受保護的屬性在Rails 4.0中已被棄用,並被強參數機制所取代。

+0

這是因爲4.0導軌版本?我現在正在學習rails,但如果在3.2版本中沒有錯誤,它是否創建屬性?謝謝 – Alexandre

+1

@Alexandre我編輯了我的答案。 –

2

你所做的一切都是錯誤的。但是你正在檢查錯誤的文件。尋找CreateAsdsdsMigration(在遷移目錄)的文件,你會看到自動生成的領域有

+2

所以我不希望模型類中有任何屬性?它只反映數據庫字段?謝謝 – Alexandre

0

對於那些從Grails的Django的還是來了,注意,Rails的創建數據庫序曲一而不是其他方式, domainclass.groovy或models.py在您定義它們之後爲您創建數據庫表。尋找yourapp/db/schema.rb,裏面都是你的類和它們的字段定義。