2重ハッシュを作りたい。
Hash.new としてハッシュを作成するのだが、一発では作成できない(らしい)
よくわからんから、おまじないを唱える
my_hash = Hash.new{|h,k| h[k]=Hash.new(&h.default_proc)}
これで
my_hash[:xxxx][:yyyy] = "zzz"
とかいけます。
ありがたや。
http://rubist.blog77.fc2.com/blog-entry-167.html
2009年12月7日月曜日
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は定義できるという・・・・
2009年12月4日金曜日
Ruby、ActionMailerについて
自動メール送信機能について
ruby ○○.rb
で起動し、メール送信できるプログラムを作りたい。
実際に動かしたところ、argument エラー。
後藤先生に聞いたが分からず。
次に,
各フリーメールでのActionmailer の設定
http://terrazilog.quipu.jp/?eid=591548
ここでは、Ruby の'ActionMailer' を使ってメール機能を実現する。
Gmail ⇒ Rails の環境なので却下(活用法が分からない)
ロリポップ ⇒ 知らんがな
Yahoo! ⇒ PopBeforeSMTP を使ってるらしく、ログインできない。
結局、本番用の環境で(localhost)前者のプログラムを動かす。
ActionMailer が無難でありそう。
ruby ○○.rb
で起動し、メール送信できるプログラムを作りたい。
Rubyでyahooメール送信 その2
http://istb16.spaces.live.com/blog/cns!65DCED8E05792EA!128.entry
ここでは、Ruby の'net/smtp' をつかってメール機能を実現する。実際に動かしたところ、argument エラー。
後藤先生に聞いたが分からず。
次に,
各フリーメールでのActionmailer の設定
http://terrazilog.quipu.jp/?eid=591548
ここでは、Ruby の'ActionMailer' を使ってメール機能を実現する。
Gmail ⇒ Rails の環境なので却下(活用法が分からない)
ロリポップ ⇒ 知らんがな
Yahoo! ⇒ PopBeforeSMTP を使ってるらしく、ログインできない。
結局、本番用の環境で(localhost)前者のプログラムを動かす。
ActionMailer が無難でありそう。
2009年12月1日火曜日
rails、 :includeの使い方について
Ruby on Railsについて。(個人情報はxxxx)
Active Recordの:include の機能を利用して2つのテーブルを結合しようとしたところ、エラー。
G先生: :include はN 対1 の1 側からしか発行できないよ。
じぶん: ぇ・・・
G先生: とりあえずSQL を直接発行した方がいいかな。
じぶん: mjsk
いろいろ調べたがSQL を使おうとした際に,困ったことが
テーブル'grade' (多) とテーブル'syllabus' (1) で,
@grades = Grade.find_by_sql("SELECT grade.* syllabus.* from grade, syllabus where grade.class_ID = syllabus.class_ID and grade.gakuseki_number = 'xxxx';")
とすると、Gradeクラスからの発行となり、おかしい。
初心に帰り、:include の勉強をすることに。
↓↓↓
・結果
:include 使える。
原因は各テーブルのモデルにあったらしい。
-誤
※grades.rb
class Grade < ActiveRecord::Base
belongs_to :syllabuses
belongs_to :students
end
-正
class Grade < ActiveRecord::Base
belongs_to :syllabus, :foreign_key => 'syllabus_id'
belongs_to :student,:foreign_key => 'student_id'
end
#belongs_to (対1) なのでテーブル+(e)sはおかしい
#foreign_key として'対象のテーブル名_id' を指定する
とする。
また,:includeの利用方法は
@grades = Grade.find(:all,:conditions => ['gakuseki_number = ?','xxxx'],:include => :syllabus)
とする.
※ポイントは:include => :syllabus
テーブルsyllabusのメソッドを呼び出すときは
@grades.syllabus.○○
とすればよい。
参考URL
http://code.nanigac.com/source/wiki/view/641/50
以上。
Active Recordの:include の機能を利用して2つのテーブルを結合しようとしたところ、エラー。
G先生: :include はN 対1 の1 側からしか発行できないよ。
じぶん: ぇ・・・
G先生: とりあえずSQL を直接発行した方がいいかな。
じぶん: mjsk
いろいろ調べたがSQL を使おうとした際に,困ったことが
テーブル'grade' (多) とテーブル'syllabus' (1) で,
@grades = Grade.find_by_sql("SELECT grade.* syllabus.* from grade, syllabus where grade.class_ID = syllabus.class_ID and grade.gakuseki_number = 'xxxx';")
とすると、Gradeクラスからの発行となり、おかしい。
初心に帰り、:include の勉強をすることに。
↓↓↓
・結果
:include 使える。
原因は各テーブルのモデルにあったらしい。
-誤
※grades.rb
class Grade < ActiveRecord::Base
belongs_to :syllabuses
belongs_to :students
end
-正
class Grade < ActiveRecord::Base
belongs_to :syllabus, :foreign_key => 'syllabus_id'
belongs_to :student,:foreign_key => 'student_id'
end
#belongs_to (対1) なのでテーブル+(e)sはおかしい
#foreign_key として'対象のテーブル名_id' を指定する
とする。
また,:includeの利用方法は
@grades = Grade.find(:all,:conditions => ['gakuseki_number = ?','xxxx'],:include => :syllabus)
とする.
※ポイントは:include => :syllabus
テーブルsyllabusのメソッドを呼び出すときは
@grades.syllabus.○○
とすればよい。
参考URL
http://code.nanigac.com/source/wiki/view/641/50
以上。
2009年7月2日木曜日
SEの処世術
2004年・岩脇一喜さん
SEはサラリーマン。そして職人である(あってほしい)。また、芸術家でもある(属性として)。
熱血に生きろ。でも、それが全てではなく、SEはSEでしかないわけでこの中で仕事をしていかなければならない。この業界で生き残るためには、精神的強さと熱意を持って仕事することが大事。
SEであることに誇りを持っていくことが大事だ。SEらしくいるべきだ。
SEはサラリーマン。そして職人である(あってほしい)。また、芸術家でもある(属性として)。
熱血に生きろ。でも、それが全てではなく、SEはSEでしかないわけでこの中で仕事をしていかなければならない。この業界で生き残るためには、精神的強さと熱意を持って仕事することが大事。
SEであることに誇りを持っていくことが大事だ。SEらしくいるべきだ。
うぃい
そんなわけでwiiをはじめたのだ
マリオカートは意外とおもしろい
軟派のやるもんだと思っていたがまぁへたくそな奴が軟派なだけで
つまりおれね
∧∧∧∧∧∧∧∧∧∧ ___/ ̄ ̄ ̄\
< ┌┐ ┌───┐ > / / / ̄ ̄ ̄ ̄\
< ││ │┌─┐│ > /  ̄ \
< ││ └┘ // >/ □ \
< ││ // >// ̄~\ / ̄ ̄ ̄\ |
< ││  ̄ >|//\ヽ ∨〃/\ \ /\
< ││ _ >//(・) \ゞ/ /(・) 〉 | | ∩|
< ││ // >| \_/ノ \_/ ノ し|: | ∪|
< ││ / | >l:::::::::∠~ ⌒ | \/
< ││ //|| >|:::::::::r〜〜‐、ヽ / /
< ││  ̄ || >|:::::::::)jjjjjjjjjjjヽヽ / /
<  ̄  ̄ >|:::::::::|,, || / /
<. ロロ┌┐┌┐┌┐ >!:::: ヽiiiiiiiii// / /
< ┌┘│││││ >ヽ ヽ〜〜"/ /
<  ̄ ̄ └┘││ > ヽ、__,,,_∠__/
< ┌┐┌┐ ││ > _]::::::: [_
< ││││ // > ̄~ ゙ ̄ ̄ ̄ ̄ヽ
< ││││  ̄ > ,〜ヽ
< └┘└┘ > 〜 ノ ̄\
< [] [] > ’ノ⌒⌒⌒⌒〉〉
∨∨∨∨∨∨∨∨∨∨∨ { Y∫
wiiiiiiiiiii
マリオカートは意外とおもしろい
軟派のやるもんだと思っていたがまぁへたくそな奴が軟派なだけで
つまりおれね
∧∧∧∧∧∧∧∧∧∧ ___/ ̄ ̄ ̄\
< ┌┐ ┌───┐ > / / / ̄ ̄ ̄ ̄\
< ││ │┌─┐│ > /  ̄ \
< ││ └┘ // >/ □ \
< ││ // >// ̄~\ / ̄ ̄ ̄\ |
< ││  ̄ >|//\ヽ ∨〃/\ \ /\
< ││ _ >//(・) \ゞ/ /(・) 〉 | | ∩|
< ││ // >| \_/ノ \_/ ノ し|: | ∪|
< ││ / | >l:::::::::∠~ ⌒ | \/
< ││ //|| >|:::::::::r〜〜‐、ヽ / /
< ││  ̄ || >|:::::::::)jjjjjjjjjjjヽヽ / /
<  ̄  ̄ >|:::::::::|,, || / /
<. ロロ┌┐┌┐┌┐ >!:::: ヽiiiiiiiii// / /
< ┌┘│││││ >ヽ ヽ〜〜"/ /
<  ̄ ̄ └┘││ > ヽ、__,,,_∠__/
< ┌┐┌┐ ││ > _]::::::: [_
< ││││ // > ̄~ ゙ ̄ ̄ ̄ ̄ヽ
< ││││  ̄ > ,〜ヽ
< └┘└┘ > 〜 ノ ̄\
< [] [] > ’ノ⌒⌒⌒⌒〉〉
∨∨∨∨∨∨∨∨∨∨∨ { Y∫
wiiiiiiiiiii
登録:
投稿 (Atom)