ラベル ActiveRecord の投稿を表示しています。 すべての投稿を表示
ラベル ActiveRecord の投稿を表示しています。 すべての投稿を表示

2010年1月31日日曜日

Rake abord!!

could not open database: unable to open database file

的なエラー@自宅NETBEANS
Railsプロジェクトを自宅に持ち帰り、起動し、マイグレーションをしようとした。

原因は
①ファイルのパーミッションの問題
②ファイルの存在するパスに日本語が含まれる
のパターンがあるらしい。

で、②でした。解決。

2010年1月27日水曜日

rails,Linuxでのマイグレーション

マイグレーションのコマンド
dbディレクトリにて、

バージョン0にする
$rake db:migrate VERSION=0

現在のバージョンへ
$rake db:migrate

フィクスチャーロード
$rake db:fixtures:load

です。

2009年12月9日水曜日

rails,Date型

ActiveRecord において、複数の型がテーブルのスキーマとして利用できる。

そのうち時間に関するものは

:datetime  日時型

:timestamp タイムスタンプ型

:time     時刻型

:date     日付型

と4つある。

今回はDate型を使うこととした。

Dateクラス(?)において使えるメソッドは結構多い。

参考
http://www.ruby-lang.org/ja/man/html/Date.html

便利。今度は他の型も使ってみたい。

2009年12月6日日曜日

rails、 ActiveRecordについて(多対多)

find メソッドにより,関連テーブルを取ってきたい。(階層的に)

ちなみに

student
↑(1)

↑(N)
rishu
↓(N)

↓(1) 
syllabus

すなわち、

student
↑(N)

↓(N)
syllabus

という関係。


まず、宣言として、
-----
#rishu.rb

class Rishu < through ="">:rishus
end
-----
#syllabus.rb

class Syllabus < through =""> :rishus
end
-----

このようにする。

controller にて

@rishu_classes = Student.find(:all,:conditions => ['student_ID = ?','xxxx'],:include => {:rishus => :syllabus})

とし、変数に格納し、
viewにて

<% @rishu_classes[0].rishus.each do |rishu| %>
<%=rishu.syllabus.class_NAME%>
<% end %>

とした。

ここで、2行目の部分は、
       (rishu.syllabus.class_NAME)
student[0].rishu[0].syllabus.class_NAME
           [1].syllabus.class_NAME
            ・
            ・
            ・
という感じ。
つまり、"student"配列の要素0→"rishu"それぞれのハッシュをeach→"syllabus.class_NAME"を呼び出すというようになっている。

ここで、最後に出たエラー

-----

NoMethodError in Juko#show

Showing app/views/juko/show.html.erb where line #9 raised:

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.class_NAME

-----

意味が分からないが、結局は、

rishus のテーブルにおいて、

rishu1:
student_id: 2053932785
syllabus_id: 153075031

と決めていたidが間違っていて対応していなかっただけだった。


しかもidは定義できるという・・・・