could not open database: unable to open database file
的なエラー@自宅NETBEANS
Railsプロジェクトを自宅に持ち帰り、起動し、マイグレーションをしようとした。
原因は
①ファイルのパーミッションの問題
②ファイルの存在するパスに日本語が含まれる
のパターンがあるらしい。
で、②でした。解決。
2010年1月31日日曜日
2010年1月27日水曜日
rails,Linuxでのマイグレーション
マイグレーションのコマンド
dbディレクトリにて、
バージョン0にする
$rake db:migrate VERSION=0
現在のバージョンへ
$rake db:migrate
フィクスチャーロード
$rake db:fixtures:load
です。
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
便利。今度は他の型も使ってみたい。
そのうち時間に関するものは
: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"を呼び出すというようになっている。
ここで、最後に出たエラー
-----
-----
意味が分からないが、結局は、
rishus のテーブルにおいて、
rishu1:
student_id: 2053932785
syllabus_id: 153075031
と決めていたidが間違っていて対応していなかっただけだった。
しかもidは定義できるという・・・・
ちなみに
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は定義できるという・・・・
登録:
投稿 (Atom)