Ruby

全875件中521~540件表示
  • Rails AR 深い階層のテーブル参照

    Rails ActiveRecord において、 深い階層のテーブルを参照するのに有効な方法はないでしょうか? 例:下記の構造で classD から classAのnameを取得する。 classA  1→n  classB  1→n  classC  1→n  classD □classA   id   name □classB   id   name   class_a_id □classC   id   name   class_b_id □classD   id   name   class_c_id #前提条件 classC, classB, classAが必ずしも存在するとは限らない。 classDからclassAを参照する際に、#前提条件にあるように、 classB or classCが存在しない(nil)場合、 > class_d.class_c.class_b.class_a.name とするとエクセプションが発生しますが、 これを回避するために、 if class_d.class_c and class_d.class_c.class_b and class_d.class_c.class_b.class_a class_d.class_c.class_b.class_a.name end のようにしていますが、煩わしくてしかたがありません。 実際はエラーログ出力等行っているため、さらに複雑な処理になっています。 もっとスマートなコーディング方法やアドバイスがありましたら宜しくお願いします。 #補足 (1) has_many :through を使ってショートカットが作れることを知りましたが、 今回の例のように、複数階層となる場合の記述方法がわかりません。 ご存知の方回答お願いいたします。 (2) そもそも前提条件に問題があるのではないかとも思っています。 前提条件にあるような状態にならない様な仕組みにする、 もしくは、そのような状態にならないよう管理する、等すべきでしょうか? 以上宜しくお願いいたします。

    • ベストアンサー
    • Ruby
  • rubyの繰り返し処理の仕方を教えてください

    rubyの繰り返し処理の仕方がわかりません rubyを使ってのプログラムを勉強してます。最終的には表の書き換えをする プログラムがつくりたいのですが最初でコケましたruby イテレーター ネストで検索してもわからなかったので質問します。どなたか お時間あれ ば教えてください。 お店の番号SA003とSA005を次の "SA001",0,10,20,10 "SA003",0,10,20,20 "SA004",0,10,20,100 "SA005",0,10,20,50 の表なかから探すプログラムを作成しようとしましたが。 繰り返し処理の仕方がわかりません変数のスコープが外れていると思いますし dataの行数は4とはかぎらないので 4.times は使えないのはわかるのですが とりあえずイメージ的に描いたプログラムです。よろしくお願いいたします。 ====testimage.rb======== class Shop_number def initialize @mise=["SA003","SA005"] end def tenposuu() return @mise.size end def tenpo_no(n) return @mise[n] end end data =[["SA001",0,10,20,10],["SA003",0,10,20,20],["SA004",0,10,20,100],["SA005",0,10,20,50]] obj = Shop_number.new obj.tenposuu.times do |i| 4.times do |j| if data[j][0]=~/{obj.tenpo_no(i)}/ then puts data end end ======================= =>["SA003",0,10,20,20] =>["SA005",0,10,20,50] と出したいのですが・・・

    • ベストアンサー
    • Ruby
    • yn0323
    • 回答数1
  • Rubyで60進数(月盤)のアルゴリズム

    Rubyで月盤の60進数を作って頂きたいんです。 西暦2008年12月=1 西暦2009年1月=2 西暦2009年2月=3 ・・・ 西暦2013年11月=60 という周期で動きます。 宜しくお願い致します。

    • ベストアンサー
    • Ruby
    • cutisei
    • 回答数2
  • Rubyの開発環境

    現在Rubyを勉強していてRailsを使ってサイト(VPS)を構築しようとしています。 その際、Windows、Mac、Linux(CentOSかUbuntu)のどの環境で開発すれば良いのでしょうか。 というのも現在はWindowsでやっているのですが、Linuxの勉強も含めVMWareでやった方が良いのか、またMacを持っておるのでMacで開発した方がいいのか迷っています。 実際に仕事等でRubyを使っておられるみなさんはどのような開発環境なのでしょうか。

    • ベストアンサー
    • Ruby
  • プログラミングのRubyを用いたブログ作成について

    家族がプログラミングをやっているのですが、Rubyによるブログの作成に関して質問があるということで、代理で投稿させていただきました。 現状では ・編集画面では記事のタイトルと内容を編集でき、それを保存すると記事タイトル・内容に加えて日時が自動で表示される ・記事の並びは最も古いものが一番上にきて、下に新しい記事が延々と足されていく(表示されていく)方式 になっているそうです。これを ・記事タイトル・日時・内容を1つのセット(かたまり)としてまとめる ・一ページにつき5件のみ表示される方式 ・最新の記事が一番上に来る並べ方 というように変えたいようなのですが、どのようにしたら良いかわからないそうです。 私自身はプログラミングは殆ど知識がなく、質問の意味がわかり辛い点もあるかと思います。 お手数をおかけしますが、どなたか方法をご存知の方がいらっしゃいましたら、ご回答頂ければ幸いです。

    • ベストアンサー
    • Ruby
  • Ruby defにするとエンコードがおかしくなる

    あるif文をdefでまとめて動かしたところ、西欧のエンコードで表示されてしまうのですが、 これはエラーですよね?正しい動作にならないのですが、どうしたらよいでしょうか。 def search_kansi(h) if h == 1 kansi = "甲子" elsif h == 2 kansi = "乙丑" elsif h == 3 kansi = "丙寅" else kansi ="無効な値が入力されました" end return kansi end #def nikkan = search_kansi(h) print nikkan

    • cutisei
    • 回答数3
  • Rubyで文字列の先頭を取りだす

    シフトJISの漢字2文字(4バイト)のうち先頭の一文字だけを取り出したい。 以下を試したところ結果は、 p kansi.split(//s) =>["\222\232", "\226\242"] #p kansi[0,2] =>["\222\232"] という結果になります。 漢字で取りだしたいのですが、文字エンコードするにはどう書けばよいでしょうか。

    • ベストアンサー
    • Ruby
    • cutisei
    • 回答数1
  • 次のメソッドの定義方法を教えてください。

    Ruby 1.8.7 ドキュメントより。 @------------------------ unless baby? feed_meat else feed_milk end @------------------------ 上記のサンプルコードの baby? というメソッドの 定義方法をサンプルコードで教えてください。 すみません。よろしくお願いします。

    • ベストアンサー
    • Ruby
    • den256
    • 回答数1
  • Rubyで申(さる)を出力したいが、エラー

    Rubyで申(さる)を出力したいのですが、 print文でInternal Server Errorが出てしまいます。 なぜでしょうか。他の十二支はちゃんと出力されます。 なぜ申だけでないのでしょうか。 エンコードの問題なのでしょうか? 私はShiftJISなんですが、何が問題なのでしょうか。

    • ベストアンサー
    • Ruby
    • cutisei
    • 回答数1
  • 変数に変数を使いたいのですが、できますでしょうか?

    変数に変数を使いたいのですが できますでしょうか? 【↓やりたい事のイメージ】 ------------------------------ for i in 1..3 hensuu【ここにi】 = i end ------------------------------ 結果として 変数「hensuu1」に1が代入され 変数「hensuu2」に2が代入され 変数「hensuu3」に3が代入されるようにしたいのです。 宜しくお願い致します。

    • ベストアンサー
    • Ruby
  • 【訂正】Ruby(Perlでも)で60進数をしたい

    すみません、訂正です。 日付で60進数を組みたいんです。 2010年7月13日=1 2010年7月14日=2 2010年7月15日=3 ・・・ 2011年7月7日=60 という運行します。 RubyまたはPerlで 簡単かつ綺麗なIf文を書いて下さる方を探しています。 よろしくお願いします。

    • ベストアンサー
    • Ruby
    • cutisei
    • 回答数2
  • できればRuby(Perlでも)で60進数をしたい

    例 1924年=1 1925年=2 1926年=3 ・・・・ 1983年=60 1984年=1 というアルゴリズムをやりたいんです。 できればRuby、Perlでもいいです。 簡潔で綺麗なIf文を書いて下さる方はいませんか?

    • ベストアンサー
    • Ruby
    • cutisei
    • 回答数1
  • Rubyで九星気学を作りたい

    プログラマ初心者です。Rubyで占いのプログラムを作りたいのですが、暦を作りたいんです。 2011年1月= 9 2011年2月= 8 2011年3月= 7     ・     ・     ・ 2011年9月= 1 というような、9からはじまり1で終わり、また9から始まって1で終わるという九進数のループを教えていただきたいです。 年マタギする部分が一番分からないので、2012年にまたぐ瞬間をどのように書けばよいのか教えてください

    • ベストアンサー
    • Ruby
    • cutisei
    • 回答数1
  • Rubyでハッシュの中の値からキーを取りだしたい

    ハッシュの中の値からキーを取りだしたいのですが、うまくいきません。 下記のようなソースしか思い浮かばないのですが、 何か良い手はないでしょうか。 ------- if number == ban.values d = ban.keys end

    • ベストアンサー
    • Ruby
    • cutisei
    • 回答数5
  • Rubyでforループの中のハッシュがよく分からな

    forループの中のハッシュをeachしたいのですが、 printすると、一番最後のループのハッシュだけ表示されるようです。 全部中身を出すにはどういうソースを書けばよいのでしょうか。 ----------------------- center = 7 for i in 5..13 if center < 9 ban = { "i" => center } center += 1 else ban = { "i" => center } center = center % 9 center += 1 end end ban.each{|key, value| print(key + "=>", value) }

    • ベストアンサー
    • Ruby
    • cutisei
    • 回答数2
  • Ruby on Railsの環境構築

    Mac OS X 10.6でRuby on Railsやりたいと思っているのですが、諸々のインストールがすみ、rails new helloworldとかで新規プロジェクトできるのですが、scriptフォルダーにserverが存在せずrailsというファイルだけあり、ruby script/serverをすることができません。 こういう状況ってなにがたりないのでしょうか。

    • ベストアンサー
    • Ruby
  • Ruby on Railsで使うモジュール

    最近Railsで仕事をしているのですが、色んなクラスに実装したい機能をモジュールにまとめて、使うときはそれぞれのクラスでインクルードしたいと考えています。 この場合、その手の(共通で使う)モジュールはどこに置くのがよいでしょうか? ControllerやModelはもちろんHelperでもないでしょうし、いまいち分からず悩んでいます。 Railsの使用経験がある方、どうかお教えください。

    • ベストアンサー
    • Ruby
  • RubyでCGIからの入力値を数値として扱いたい

    ウェブのフォームから数値を入力し、 それを受け取って、cgiの中で演算したいのですが、うまくいきません。 input = CGI.new birth = input["birth"] #西暦1982年を入力 print -(birth - 1927)%9+1 #この演算をしたいのですが、できません。

    • ベストアンサー
    • Ruby
    • cutisei
    • 回答数1
  • Ruby on Railsのエラー等について

    以前Javaを触っていたものですが、新しい業務で携わることになったRuby on Railsについて質問があります。 1.errorsについて ActiveRecordを継承したModelにerrorsというメソッド(プロパティ?)がありますが、この正体は何という名前のクラスでしょうか。 また、このerrorsにはaddおよびadd_to_baseというメソッドでエラーメッセージを加えることができますが、加えたエラーは蓄積されていくのでしょうか、もしくは上書きされていくのでしょうか? 例えば、 model.errors.add_to_base('エラーが発生しました') model.errors.add_to_base('エラーがでたよ') と続けて書いた場合、error_message_forで表示されるエラーは後者('エラーがでたよ')だけという動きが正しいのでしょうか?もしくは、両方とも表示されるのが正しいでしょうか? 2.論理演算子「&&」「||」について Javaの「&&」や「||」という演算子は、前の判定だけで結果が出たなら後の判定をパスして先へ進みます(例えば「A && B」でAがfalseなら、Bの判定をせずにfalseを返すといった具合)。これに対して「&」や「|」といった、前の判定がどのような結果であれ後の判定も強制的に行うという演算子が用意されています(「A & B」ならAがfalseでもBの判定も必ずするといった具合)。 Rubyにはこれに相当する演算子はないのでしょうか?「and」や「or」がありますが、どうも違うようなので。 もし詳しい方がいらっしゃれば、ご教授下さい。 よろしくお願いします。

    • ベストアンサー
    • Ruby
  • [初心者]rubyでgemが使えません

    ruby1.9.2をインストールをしたあと、rubygems1.5.0をダウンロードして ruby setup.rb でインストールしたのですが、 gem -v をしても反応がありません。No such file or directoryといわれてしまいます。環境変数をいろいろと変えてみましたがやはりダメでした。windowsだとやり方が違うのでしょうか。 検索しても答えが見つからなかったので質問させていただきました。初心者ですがよろしくお願い致します。 [os] windows xp [ruby] ruby 1.9.2p136 (2010-12-25) [i386-mingw32] [エラーメッセージ] C:\Ruby192\bin\ruby.exe: No such file or directory -- /cygdrive/c/Ruby192/bin/gem (LoadError)

    • ベストアンサー
    • Ruby