スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PadrinoでMongoidモデルの生成バグ

RubyのフレームワークPadorino(0.10.6)でMongoidをモデルにしたところ、自動生成されたソースにバグがあって動きませんでした。

とりあえずインストールの手順から書いてみます。

gem install padrino
padrino g project app -n padcms -d mongoid -t rspec -s jquery -e haml -c sass -b
cd app
bundle install
padrino g admin
bundle install
padrino g model user name:string, age:integer
padrino rake seed

ここで
syntax error, unexpected tSYMBEG, expecting keyword_do or '{' or '(' field :age, :type => Integer
となってエラーになります。

ソースをみてみると
class User
include Mongoid::Document
include Mongoid::Timestamps # adds created_at and updated_at fields

field :name, :type => String,
field :age, :type => Integer
end

Stringの後ろにいらないカンマがありました。
これを削除してもう一度

padrino rake seed

したところ、うまくいきました。このコマンド実行中に聞かれるメールとパスワードは管理画面に入るときに使用します。
最後にUser用の管理画面を作成し、実行します。

padrino g admin_page user
padrino start

http://localhost:3000/admin
にアクセス。
さきほど設定したメールとパスワードで入れます。
メニューにUserがあるのでクリックすると、UserのCRUDができます。

ですがここで再び自動生成したソースが変なことになっています。
余計な項目がでているので修正します。

vi admin/views/users/index.haml
以下の2つの置き換え。
1.
%th.first=mat(:user, :_type)
%th=mat(:user, :_id)

%th.first=mat(:user, :id)
2.
%td.first=user._type
%td=user._id

%td.first=user.id

vi admin/views/users/_form.haml
typeとidの項目を削除。

これで正しく動くようになりました。
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。