回答数
気になる
-
rubyのインスタンスのクラス名取得
現在rubyを勉強しているのですが、わからないことがありこまっています。 それはインスタンスにどんなクラスが入っているかわからないのです。 具体的にソースで説明させていただきます。 f= File.open("hello.txt") このfのインスタンスにどんなクラスのインスタンスが格納されているか知りたいのですが、何か方法は無いのでしょうか?
質問日時: 2012/05/17 18:14 質問者: lain_003
ベストアンサー
1
0
-
linuxにrailsのインストールができない。
今CentOSにrailsをインストールしようとしているのですが、はまっています。 rubyはrvmでインストールできたので、gemでrailsをインストールしたのですが、 railsコマンドをうつと、「-bash: /usr/local/bin/rails: /usr/local/bin/ruby: bad interpreter: そのようなファイルやディレクトリはありません。」とでます。 これは昔railsを入れて、うまく動かなかったのでuninstallしたという経緯がある り、その設定ファイルがどこかにのこっているからだと思うのですが、でもrails のパスをどこにとおし直したらいいかわかりません(bash_profileかな?と思うのですが 、railsとうったときに何を参照していいいかわからない)。 何か気づいた点がありましたら、助言いただけると幸いです。
質問日時: 2012/05/11 12:32 質問者: lain_003
ベストアンサー
2
0
-
ファイル読み込み時の文字列比較が上手くいきません
よろしくお願いします。 cgiの勉強中なのですが、文字列の比較が上手くいかずに困っています。 プログラム中に記述した日本語は問題なく同じ文字として比較されるのですが、 ファイルから文字を読み込んだ日本語を比較させようとすると上手くいきません。 以下のプログラムでは4箇所から「yes」と返ってくるのが理想でしたが、 後半の2箇所からしか「yes」と返ってきませんでした。 文字コードの問題かとも思い、NKF等で変換してみたり試してみましたが上手くいきませんでした。 また、どのファイルもUTF-8に統一されているのでファイルの読み込み時に文字コードの変換は必要無いのではないかとも思っています。 使用しているファイルは以下の3ファイルとなり、同一フォルダに入れています。 プログラム中で日本語を使用したかったので、どのファイルも文字コードはUTF-8で保存しています。 question.rb :メインプログラム Unit_module.rb :メインから呼び出すモジュール question.txt :文字列の入ったテキスト(最後は改行していません) rubyのバージョンは1.9.3p125を使用しています。 独学ですので周囲に訊く事も出来ずにいます。 何が問題で文字列の比較が上手くいっていないのでしょうか? 以下は各ファイルの内容となります。 ---------------question.rb----------------------------------------- #! /usr/local/bin/ruby # -*- encoding: utf-8 -*- #モジュール読み込み require "./Unit_module" include Unit #HTML作成 print "Content-Type:text/html;charset=utf-8\n\n" print <<EOF <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> EOF str_test = "" #ファイル読み込み時の日本語の比較 f = open("./question.txt", "r") f.each{|line| str_test = line if str_test == "東" then print "yes" end test(str_test) } #プログラム中に記述した日本語の比較 str_test = "東" if str_test == "東" then print "yes" end test(str_test) print "</body></html>" -----------Unit_module.rb------------------ # -*- encoding: utf-8 -*- module Unit def test(str_test) if str_test == "東" then print "yes" end end end -----------question.txt--------------------- 東 --------------------------------------------
質問日時: 2012/04/22 06:06 質問者: KURAOPNER
ベストアンサー
4
0
-
レンタルサーバでruby date2
レンタルサーバでdate2(http://www.funaba.org/ruby.html#date2)ってライブラリを使いたいです。 ファイルをダウンロードしてtar -xvfしてREADMEに従ってくと、 %ruby install.rb install rm -f InstalledFiles ---> lib mkdir -p /usr/local/lib/ruby/site_ruby/1.8 install date.rb /usr/local/lib/ruby/site_ruby/1.8/ install.rb:633:in `initialize': Permission denied - /usr/local/lib/ruby/site_ruby/1.8/date.rb (Errno::EACCES) 以下略 となりました。レンタルサーバなので/usr/localなどに書き込み権限がないからの様です。 こういうライブラリをレンタルサーバで使いたい時って、どうしたら良いのでしょう?? 因に、今まではgem でインストールするライブラリしか使った事がなく、 gemの時は、 setenv GEM_HOME $HOME/local/lib/gems/1.8 setenv RB_USER_INSTALL true gem18 install hogehoge などとしてました。 ご指導の程、よろしくお願いいたします。
質問日時: 2012/04/19 01:00 質問者: kingfruits
ベストアンサー
2
0
-
x.divmod(y)
レシーバーとなる数値を引数で割って商と余りを配列にして返す divmodメソッドの読み方を教えてくれませんか? お暇な時でけっこうです^^よろしくお願いします。
質問日時: 2012/04/17 12:36 質問者: hirop0x452
ベストアンサー
1
0
-
railsのform_forの使い方
現在rails3.2でrailsの勉強をしています。この過程で困ったことがありましたので質問させていただきました。 それはviewにfomr_forを定義するとエラーをはいて動かないのです。 具体的にソースで説明します。 ・コントロールのソース class ComicListController < ApplicationController def index @comic_master_r = ComicMaster.new end end ・Viewのソース <%= form_for @comic_master_r do |f| %> <% end %> ・エラーの内容 undefined method `comic_masters_path' for #<#<Class:0x9da00d0>:0x9e73d04> 私個人の見解としては、form_forを使う際に必要とされるコントロール側の変数の定義が足りないからではないかと思っているのですが、googleの検索結果ではViewしか書いていないことが多く、コントロールにどんなものを定義すればいいのか、うまく判断がつきません。 ご回答お待ちしております。
質問日時: 2012/04/12 02:20 質問者: lain_003
ベストアンサー
2
0
-
Unixのwcコマンドの簡易版ですが
ltotal = 0 #行数の合計 wtotal = 0 #単語数の合計 ctotal = 0 #文字数の合計 ARGV.each do |file| begin input = open(file) #ファイルを開く(A) l = 0 #file内の行数 w = 0 #file内の単語数 c = 0 #file内の文字数 while line = input.gets l += 1 c += line.size line.sub!(/^\s+/) #行頭の空白を削除 ary = line.split(/\s+/) #空白文字で分解 w += ary.size end input.close #ファイルを閉じる printf("%8d %8d %8d %s\n", l, w, c, file) #出力を整形する ltotal += l wtotal += w ctotal += c rescue => ex print ex.message, "\n" #例外メッセージを出力(B) end end printf("%8d %8d %8d %s\n", ltotal, wtotal, ctotal, "total") ローカル変数はメソッドを抜けると値を忘れてしまうのでは なかったでしょうか・・・ ここでltotalやwtotal等を呼び出しているのは明らかに メソッドの外部からだと思うのですが、変数に入れられた 値は保持されたまま表示されるのでしょうか
質問日時: 2012/04/10 08:53 質問者: hirop0x452
ベストアンサー
2
0
-
【Ruby】テキスト置換を1ファイル完結にしたい
memo.txtの中に含まれている"俺の飯"という文字列を"私のごはん"というふうに置換を行いたいのですが、 現在のやり方だとファイルを開いて1行ずつ読み込んで新しいファイルに文字列を書きだしており 読み込んだ際、置換対象の文字列があった場合に置換して書きだしておりますが このやり方だとどうしても新規ファイルを出力しなければいけません。 これを新規ファイルを作らずにmemo.txtの中身だけを書き換えるようにするには どのような処理にすれば良いのでしょうか? 何卒宜しくお願い致します。 ---- sample.rb require 'rubygems' open("memo.txt"){ |f| open("after_memo.txt","w"){ |o| while line = f.gets line.gsub!("俺の飯", "私のごはん") o.puts line end } } -- memo.txt 俺の飯はリーズナブル! 俺の飯美味しそう!
質問日時: 2012/04/09 23:54 質問者: mail1
ベストアンサー
2
0
-
別のクラスのインスタンスの作り方
現在、javaからrubyに移行するために勉強しているのですが、別のファイルに定義したクラスのインスタンスが作成できなくて、困っています。 具体例をあげると require './B' class A end def initialize b = new B end end --別のファイル class B def initialize p 'hello' end public : initalize end こんな2つのファイルがあったとして、Aのインスタンスを作成すると、 undefined method `B’ というエラーがでます。 私としてはこのエラーの原因がinitializeがデフォルトでprivate宣言なのが原因だと考えているのですが、publicと指定してもエラーとなることから、いくつか疑問が湧いたので質問させていただきます。 1、そもそもBクラスのインスタンスが作成できないのはinitializeがデフォルトでprivate宣言なのが原因なのか? 2、1があっていたと仮定するとBクラスのinitializeをpublic指定しているのになぜ呼び出せないのか? 3、rubyはなぜデフォルトでinitializeがprivateなのか?(javaではコンストラクタをprivateにするということは普通はしない。使うときはシングルトンやUtilのようなクラスを作るときに限る) 以上です。よろしくお願いします。
質問日時: 2012/04/07 21:06 質問者: lain_003
ベストアンサー
1
0
-
gem でインストールされたアプリの使い方
現在railsの勉強をしているのですが、その仮定でgemを使うことがおおくなりました。 しかしgemの使い方がいまいちわかりません。 具体的にはmysqlをインストールしようと考え gem install mysql とうって、mysqlをインストールしたのですが、このソフトの使い方がわかりません。 といいますのも、mysqlとうってもコマンドはみつからず、そこで gem which mysql でrbファイルを探し出し実行したんですけど、特に反応が無い。readmeもない。 自分でインストールしていて間抜けな話なんですが、gemで入れたプログラムはどうやって使えばいいんでしょうか?ご回答お待ちしております。
質問日時: 2012/04/02 18:03 質問者: lain_003
ベストアンサー
2
0
-
インスタンス変数とクラス変数の違い
1つのクラスオブジェクト内のインスタンス全てで共有できる クラス変数 @@a と、 同じインスタンス内であればメソッドの定義を越えてその値を 参照したり、変更したりできるインスタンス変数 @a のスコープの違いをお手すきでしたらご指導願えませんか? あとクラス変数にはセッターやゲッター等のアクセスメソッドを 設定できるんですか? いろいろ知りたいです。
質問日時: 2012/03/24 14:56 質問者: hirop0x452
ベストアンサー
2
0
-
ターミナルの切り替え
SSHでVPS(Cent OS5.8)に接続してrailsのサーバーを立ち上げました。そうすると当たり前ですが実行されターミナルに状態が出力されます。このときにターミナルは別の操作ができなくなるのですが、この場合どうやれば実行させつつ別の作業操作ができるのでしょうか。 それともPC側から別のプロンプトを立ち上げてSSHでログインするのでしょうか。Linuxは初めてなのでご教授の方よろしくお願いします。
質問日時: 2012/03/22 10:43 質問者: whiterozes
ベストアンサー
2
0
-
Rubyから学ぶことについて
スクリプトから入ると説明しにくいけど、後で挫折しやすいという意見を 聞いたのですが、本当でしょうか? ちなみに独学なのですが、独学ならなおさらといってました。 Cから入るのが無難とかなんとか。 本当にそうなんでしょうか?
質問日時: 2012/03/19 01:36 質問者: hirop0x452
ベストアンサー
3
0
-
Rubyの rails runnerについて
rails runnerコマンドを実行するのに、1分以上かかります。 1分おきに定期実行を考えているのですが、とても使用できません。 1分おきに定期実行する方法はありますでしょうか。 開発実行環境 OS WindowsXP ruby 1.9.2p290 rails 3.2.2 勉強始めて3日目の初心者ですが、宜しくお願いします。
質問日時: 2012/03/15 16:58 質問者: gannkiki
ベストアンサー
1
0
-
ActiveScriptRubyについて
rubyそのものの質問でなくて申し訳ありせん。 WindowsにてActiveScriptRubyを使用しております。 http://www.geocities.co.jp/siliconvalley-PaloAlto/9251/ruby/ の記述にて、「できること」に「WScript, CScriptからのRubyスクリプトの実行」とあったので試してみたのですが以下の様なエラーが出て動作しません。 Win XP 2台、Win Vista 1台で試しましたが同じ結果となりました。 http://www.artonx.org/data/asr/ から Ruby-1.9.3-p125.msiをインストールして、%ruby_install_dir%\binにパスを通してrubyを使用しておりますが、CScript(或いはWScript)からrubyを動作させるには他に何か設定が必要なのでしょうか? お解りになる方がいらっしゃいましたらご回答をお願い致します。 コマンドプロンプトから実行しています。 D:\ruby>ruby -v ruby 1.9.3p125 (2012-02-16) [i386-mswin32_100] D:\ruby>ruby hello.rb ←これは普通に動作します。 D:\ruby>cscript hello.rb Microsoft (R) Windows Script Host Version 5.7 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 入力エラー: ファイル拡張子 ".rb" を持つスクリプト エンジンはありません。 D:\ruby>wscript test.rb ←同じエラーのメッセージウィンドウが出ます。
質問日時: 2012/03/14 06:01 質問者: siffon9
ベストアンサー
1
0
-
MacでRailsアプリを開発する際のエディタ
MacでRuby on Railsのソフトを開発するのに向いているエディタを探しています。 現在はAptanaを使っているのですが、もう少し単語の補完機能が充実している物はありますでしょうか?
質問日時: 2012/03/12 18:05 質問者: Shinya_131
ベストアンサー
2
0
-
Ruby と Ruby on Rails
Ruby と Ruby on Railsは何が違うんでしょうか? 漠然とした質問ですいません。
質問日時: 2012/03/11 21:05 質問者: hirop0x452
ベストアンサー
1
0
-
ruby 配列の中の文字列を全部数値にしたい
array=%w(1 2 3 4) のような文字列の配列があるとします。 これを数値の配列にしたいです。 以下の様にしてみました。 array=array.inject([]){|a,v| a<< v.to_i } これでも出来ましたが、もっとrubyらしい方法ってあったら教えて下さい。
質問日時: 2012/03/09 19:46 質問者: kingfruits
ベストアンサー
1
0
-
ruby19 -vは○、gem19 -vは×な理由
ruby19 -vは使えるのに、gem19 -vが使えない ▽ruby1.9をcoreserverとmacのホームディレクトリにインストール - Born Neet] http://blog.bornneet.com/Entry/282/ を参考に、レンタルサーバに「ruby-1.9.2-p180」をインストールしようとしています。 「ruby19 -v」と打つと、「ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]」と表示されるのですが、 「gem19 -v」と打つと、「command not found」となってしまいます。 「gem19 -v」を有効にするには、どうすれば良いでしょうか? <インストールする際に打ったコマンド> /local/src/ruby-1.9.2-p180> ./configure --prefix=$HOME/local --program-suffix=19 <エラーと思われる箇所> make[1]: Leaving directory `/virtual/ユーザー名/local/src/ruby-1.9.2-p180' Generating RDoc documentation ./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./tool/runruby.rb --extout=.ext -- "./bin/rdoc" --no-force-update --all --ri --op ".ext/rdoc" "." ./tool/runruby.rb:63: warning: Insecure world writable dir /virtual/ユーザー名/lib/PEAR in PATH, mode 040777 uh-oh! RDoc had a problem: Directory .ext/rdoc already exists, but it looks like it isn't an RDoc directory. Because RDoc doesn't want to risk destroying any of your existing files, you'll need to specify a different output directory name (using the --op <dir> option) 「RDoc」ってドキュメント(?)だから関係ないようにも思うのですが、何か影響しているのでしょうか? .ext/rdoc は既に存在しているけど、「RDoc directory」に見えない、とは、どういうことなのでしょうか?
質問日時: 2012/02/27 23:09 質問者: re999
ベストアンサー
6
0
-
ruby 配列の中の正規表現は比較に使える?
数万行あるテキストファイルの中を数百パターンくらいの正規表現で サーチするRubyスクリプトを作成しようとしていますがうまくできません。 どなたかお知恵を拝借させてください。 以下の流れで作ろうとしています。 「 ファイルを一行GETして、その行が事前に定義した配列内の正規表現に合致していればprintする。 次の行をGETして、最初からた正規表現の配列を比較して、合致していればprintする。 テキストファイルが終わるまで、繰り返し 」 何分初心者なもので…、他のやり方があれば教えていただきたいです… ヨロシクお願いしますm(__)m
質問日時: 2012/02/24 23:20 質問者: moxa
ベストアンサー
3
0
-
ruby 全角ハイフンを半角ハイフンに置換したい
$KCODE='e' require 'jcode' puts 'ー'.tr('ー','-') と書いてみたのですが、 /usr/local/lib/ruby/1.8/jcode.rb:137:in `tr!': premature end of regular expression: /[ー]/ (RegexpError) from /usr/local/lib/ruby/1.8/jcode.rb:148:in `tr' from b.rb:5 と怒られます。なにが悪いんですか? あと、実は全角の()も置換したいので、 $KCODE='e' require 'jcode' puts 'ー()'.tr('ー()','-()') などと書いてみたのですが、今度は -())) と期待した結果と異なるものが出てきました。 何が悪いのでしょうか? 以上、ご指導の程、よろしくお願いいたします。 P.S nkfって奴で、全角記号を半角記号へ変換って出来ないと思って、こんな事してます。
質問日時: 2012/02/03 20:32 質問者: kingfruits
ベストアンサー
1
0
-
Cygwin RubyでのIE
Cygwin上でRuby言語でInternetExplorerのプログラムを書いています 現在は 1、win32oleでIEを開く 2、プログラム内でhtmlでHPを作成し、IEで開く 3、2をプログラムを終了させるまで続ける といったものですが、2でURLを習得し、IEで開こうとすると新しい窓(ウィンドウ)が開いてしまいます。新しい窓(ウィンドウ)を開かずに、1で開いたIEを更新させたいです。 または、前に開いたページを閉じて、新たなページを開く。 win32oleやwin32APIなど、Cygwin上のRubyで使える方法ならいいので、ご存知の方いましたらお願いします。
質問日時: 2012/01/31 13:36 質問者: rokino
ベストアンサー
5
0
-
初めてのプログラミング 第2版という本を買いました
私はプログラミングというものを全く経験したことがありません。 タイピングも物凄く遅いくらいパソコン初級者です。 パソコン自体、ネット検索や通販くらいしか使いません。 しかし私はゲームを作りたくてRubyという言語を勉強したいです。 それでこの質問のタイトルの本を買いました。(アマゾンで買ったので中身を見ずに買いました。) しかし読みながら3時間ほどパソコンをいじってみましたが、解説に飛躍がありすぎてまだ難しいです。 もっと丁寧に解説された初心者のためのRubyの本はないでしょうか?
質問日時: 2012/01/28 21:17 質問者: N-GR
ベストアンサー
3
0
-
rubyで変数から指定したバイト読むには?
たとえば、 Class Hoge initialize(arg) @data=arg end def read(size) @dataからsize分読んで返す。 end end みたいなクラスを hoge=Hoge.new(aaa) puts hoge.read(1024) puts hoge.read(1024) みたいに使いたいです。 指定したバイト分読むってどうするんですか? ご教授の程、宜しくお願いいたします。
質問日時: 2012/01/25 23:50 質問者: kingfruits
ベストアンサー
2
0
-
rubyの見えない文字
こんばんは Ruby1.9.2のrails3.1.1を使用しています。 csvファイルをアップロードして、 data = param[:file].read.encode("UTF-8","UTF-8", :invalid => :replace, :undef => :replace, :replace => '').read.encode("UTF-8", :invalid => :replace, :undef => :replace, :replace => '?') のように読み込みまして、最初の1行の最初の要素が"code"でした。そこで、 data[0][0] == "code" としましたところ、falseが出力されました。両方とも文字コードはUTF-8で"code"なのですが、調査したところ data[0][0]length #=> 5 "code".length #=> 4 という違いが見つかりました。 この読み込みデータの見えない文字はなんなんでしょうか。 また、これを取り除く方法は何かありませんでしょうか。よろしくお願いします。 参考 data = param[:file].read.encode("UTF-8", :invalid => :replace, :undef => :replace, :replace => '').read.encode("UTF-8", :invalid => :replace, :undef => :replace, :replace => '?') としたところ、"???code"、長さ7という結果になりました。
質問日時: 2011/12/28 18:34 質問者: graf_
解決済
4
0
-
ruby 毎回同じ様なreplace文を書くのイヤ
db = SQLite3::Database.new('hoge.db') で、 db.execute('replace into table01 (a, b, c, d, e, f, g) values(?, ?, ?, ?, ?, ?, ?)',va, vb, vc, vd, ve, vf, vg); とかって書いてるのですが、 これを、 def replace(table,k,v) db.execute('replace into ' + table + '(' + k.join(',') + ') values('+ k.collect {'?'}'.join(’,’) +')' , ここどうかいたら??) end みたいな事を考えたのですが、vって配列でもらった値をばらばらにdb.executeのパラメータに渡したいのですが、 できませんでして、 replace('table',%w(a, b, c, d, e, f, g),[va, vb, vc, vd, ve, vf, vg]) みたいに使いたいです。 引数が可変のパラメータをそのまま、つぎの関数に渡すみたいな。 なんか、ラクする方法ないですか? ご教授の程、宜しくお願いいたします。
質問日時: 2011/12/26 23:30 質問者: kingfruits
ベストアンサー
1
0
-
rubyでメソッド内で引数名、値を取得
Rubyでメソッドの引数名をメソッド内部で取得するような事は可能でしょうか? def hoge(a,b,c) # ここでa,b,cの引数名、またその値を取得 # 例えば、{:a=>1, :b=>2, :c=>3}のようにHashの形式で得るなど。 end local_variablesだと、引数も含まれますがその他で定義したものも拾ってしまうため、他の方法を探しています。 わかる方がいれば教えていただけますでしょうか。
質問日時: 2011/12/25 23:13 質問者: maenoina
解決済
3
0
-
ruby inject
p [{:a=>'x',:b=>'X'},{:a=>'y',:b=>'Y'},{:a=>'z',:b=>'Z'}].inject(Hash.new(0)){|h,v| h[v[:a]]=v[:b]} 上記以下エラーになります。 test.rb:1:in `[]=': string not matched (IndexError) from test.rb:1 from test.rb:1:in `inject' from test.rb:1:in `each' from test.rb:1:in `inject' from test.rb:1 以下のような、ハッシュを作りたいのですが、 {'x'=>'X',y'=>'Y',z'=>'Z'} 何がダメですか? ご教授の程、お願いいたします。
質問日時: 2011/12/19 20:40 質問者: kingfruits
ベストアンサー
1
0
-
テキストファイルを読み込んでランキング付けする方法
タイトルのとおりですが、サーバーに保存してあるテキストファイルを読み込んで、 出現回数の多かったものを表示したいと考えています。 言語はRubyかできればJava scriptでと考えています。 テキストファイルには A B C A D のように一行ずつ語句が保存してあります。 よろしくお願いします。
質問日時: 2011/12/19 17:48 質問者: yosi583
ベストアンサー
2
0
-
Ruby on rails のモデルオブジェクト
Ruby on Rails を勉強しているんですが、細かいところで @member = Member.find(1) という風に作成したモデルオブジェクトについてですが、 @memberとういう変数から、Memberモデルの主キー名を取得することができるでしょうか。 ※または、@memberから、Memberクラスが取得できるか。 @member.reflectionsなど、いろいろためしましたができませんでした。 お分かりの方がいらっしゃいましたら、是非お教え願えないでしょうか。
質問日時: 2011/12/16 22:36 質問者: graf_
ベストアンサー
2
0
-
アカウントの登録について
rubyでアカウントがない場合に新しくアカウントを作るプログラムを、ハッシュを使って作成しようと思っています。表示としては登録ができたら「アカウントを作成しました。」と、アカウントがすでにある場合には「アカウントはすでにあります。別なアカウント名を使ってください。」と表示させたいと思っています。ハッシュに登録まではできるのですが、そこからどう作成したらいいのかわからないので教えてほしいです!初心者で申し訳ないですがよろしくお願いします。 $KCODE = "e" hash_account = {} fo = open("accountData.txt", "r") i = 0 while(line = fo.gets) ary = line.split hash_account[ary[0]] = ary[1] i = i + 1 end fo.close ちなみに、accountData.txtにはアカウント名,パスワードの順に登録があります。 rubyのバージョンはruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32]です。
質問日時: 2011/12/14 15:38 質問者: runa3829
ベストアンサー
3
0
-
アカウントプログラムについて
rubyでアカウントとパスワードを検証するプログラムを、ハッシュを使って作成しようと思っています。 そこで、if文を使って条件をわけようとしているのですが、うまくいきません。 自分なりに書いてはみたのですが間違っているようで、どこをどう直したらよいか教えていただきたいです! $KCODE = "e" hash_account = {} fo = open("accountData.txt", "r") i = 0 while(line = fo.gets) ary = line.split hash_account[ary[0]] = ary[1] i = i + 1 end fo.close print "*** ログインしてください。自分のアカウント名とパスワードを入力してください。 ***\n" print "アカウント:" account = gets.chop print "パスワード:" password = gets.chop if (hash_account[account] == password) print "ようこそ、", account,"さん。それではゲームを始めましょう。\n" elsif print "パスワードが間違っているようです。\n" else print account,"というアカウントはありません。\n" end ちなみに、accountData.txtには、アカウント名、パスワードの順に入っています。
質問日時: 2011/12/13 12:59 質問者: runa3829
ベストアンサー
1
0
-
RubyのDateクラスのメソッドが見つからない
先日よりRubyでのプログラミングを始めてみたのですが DateクラスのDate::MOTHNAMESを参照しようとしたところ undefined method `MOTHNAMES' for Date:Class (NoMethodError) と返ってきてしまいました。 ほかにもDate::exist?メソッドもためしてみましたが、同じ様なコメントが 返ってきました。 undefined method `exist?' for Date:Class (NoMethodError) なお、 Date.newなどはつかえています どういった問題でどのように解決すれば良いのか、ご教示願えればと思います。 バージョンは ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0] で、Mac OSX Lionで動かしています。
質問日時: 2011/12/12 03:19 質問者: dcprg24
解決済
4
0
-
rubyであるサイトのデータを自動でつぶやくbot
http://www.sanabo.com/words/ 上記サイトから言葉を拾ってきて、つぶやかせるという自動botを考えてます。 流れとしては、サイト上からスクレイピングしデータを切り取り(nokogiri)、それをハッシュ?の中に格納して、その値の中からランダムにつぶやかせる。という感じかなと思ってます。 ※TwitterのAPIはなんとか大丈夫です。 ですが、2点疑問があります。 01) サイト見てみると、「あ」…「お」など言葉がディレクトリごとに分かれており、どうやってアクセスして切り取ってくるのか不明?正規表現とか使うのでしょうか? 02) どういうふうにハッシュの中に値を入れるのか? ご教授いただけますでしょうか? よろしくお願いいたします。
質問日時: 2011/12/01 01:18 質問者: sho27_2009
ベストアンサー
2
0
-
rubuのプログラミング
accountData.txtというファイルを読み込み、空のハッシュに登録し、そこから関数を使わずにアカウント管理のプログラムを作りたいと思っています。 アカウントとパスワードが一致すれば成功しましたと、アカウントがない場合はアカウントがありませんと、アカウントがあっていて、パスワードが合わない場合はパスワードが間違っていますと作りたいと思っていますが、どうやればいいのか教えてください! accountData.txtというのは名前、パスワードの順番で入っています。 初心者で申し訳ないですが詳しく教えていただけると嬉しいです。 よろしく、お願いします。
質問日時: 2011/11/28 12:27 質問者: runa3829
解決済
2
0
-
requireするファイルのパス
プログラミングの知識はほぼ皆無なのですが、仕事でRUBYを使わなければならなくなり、オープンソースを弄っているところです。 rbファイルの記述に require '○○' とあるのですが、判らなかったので無視して実行してみたところ、 C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot loa d such file -- ○○ (LoadError) from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require ' from makeindex.rb:2:in `<main>' というエラーが出ました。 ○○ファイルを色々なディレクトリに置いてみたのですが、どれも同じエラーでした。 一般的に、○○ファイルは何処に置くべきなのでしょうか。 尚、環境は以下の通りです。 WindowsXP RUBY 1.9.3 「require '○○'」の記述があるrbファイルの場所 c:\a rbファイルはカレントディレクトリをaにしてから実行 プログラマーの方からすれば意味不明な質問かも知れませんが、ネットで調べてみてもさっぱり判らなかったので質問させて頂きました。 宜しくお願いします。
質問日時: 2011/11/17 14:17 質問者: Mentho
ベストアンサー
5
0
-
Ruby ファイルのリネームでのエラー
組み込みライブラリのFileクラスを使用してリネームをしようとしているのですが、パスを直接記述した場合はリネーム処理がおこなわれますが、変数で渡した場合は Invalid argument とエラーが出ます。 変数で渡した場合でも出来るようにするには何か別の処理が必要なのでしょうか。 宜しくお願いします。 ○のパターン File::rename("C:\test\01sample01.txt","C:\test\sample01.txt") ×のパターン sample1 = "C:\test\01sample01.txt" sample2 = "C:\test\sample01.txt" File::rename(sample1,sample2)
質問日時: 2011/11/16 09:24 質問者: nightcrows
ベストアンサー
2
0
-
Rails3でのクリックされたボタンの判定について
現在Rails3でWEBアプリの開発をしているのですが 実現方法が不明な事が有るので質問させて頂きました。 実行環境は OS:Windows7 Railsバージョン:3.0.9 APサーバー:WEBrick です。 実現方法が不明なのは、一つのフォームに複数のサブミットボタンを配置し コントローラーでどのボタンが押されたのか判定する方法です。 ビューにおいてフォーム内に <%= submit_tag 'OK', {:disable_with => "Sending…"} %> <%= submit_tag 'CANCEL', {:disable_with => "Sending…"} %> と言う様にサブミットボタンを配置し コントローラーでどちらのボタンが押されたのかを判定する方法なのですが 検索して調べてみると if 'OK' == params[:commit] then OKボタンが押された際の処理 else CANCELボタンが押された際の処理 end と言う風に出来ると言う情報を見つけたのですが、実際にやってみると 上記の様な値はparamsから取得出来ないので、正しく動作しません。 paramsで取得した値の中身を見ても、それらしい値も無く 何を判断すればどのボタンが押されたのかを判断出来るのかが判らず 非常に困っております。 サブミットボタンにjavascriptのコードを埋め込み 送信前にHIDDEN項目にクリックされたボタンを表す値を埋め込むと言った方法で 回避する事も可能かとは思いますが、標準的なやり方とも思えず また、良く行われる処理だと思いますので、他に方法が有る様に思えます。 どなたかご存知の方が居れば御回答お願いします。
質問日時: 2011/11/15 00:45 質問者: in_no_delusion
ベストアンサー
2
0
-
Rubyで文字列の抽出
Rubyで質問があります。 AAAA;BBBB、CCCCC=DDDDD という文字列が存在したときに、 AAAAとBBBBとCCCCCとDDDDDの文字列を取得したいです。 splitは、特定の区切り文字しか対応していないようなので、複数の区切り文字を指定出来る方法はありませんでしょうか? 確かにsplitで地道に処理するより もうちょっと効率的な方法はないか知りたいです。
質問日時: 2011/11/14 05:02 質問者: mochang
解決済
2
0
-
アカウントのプログラムについて
rubyのプログラミングでアカウントに関するプログラムでアカウントがある場合は成功しました、パスワード違う場合はもう一度入力してください、アカウントがない場合はアカウントがありませんと表示をさせようと思っています。ちなみに、アカウントデータはテキストファイルの中に、名前、パスワードの順番に入っています。 そこで何ですが、def verifyAccount(account, password)という関数の中身をどう定義したら良いのでしょうか? あと、result = verifyAccount(account, password)以降に何を書いたら良いか教えてもらえたら嬉しいです。 聞きたいことが多くて申し訳ないですが是非ともよろしくお願いします! def verifyAccount(account, password) end print "*** ログインしてください。自分のアカウント名とパスワードを入力してください。 ***\n" print "アカウント:" account = gets.chop print "パスワード:" password = gets.chop result = verifyAccount(account, password) ...
質問日時: 2011/11/07 22:48 質問者: runa3829
ベストアンサー
4
0
-
Rubyのソースコードの読み方
現在JavaからRubyに移行しようと勉強をしているのですが、Rubyのソースコードを読んでいくと、変数に何が入っているかわからなくて困っています。 ソースコードを例に説明させていただくと、 gs = TCPServer.open(12345) addr = gs.addr こんなソースがあったとして、2行目のgs.addrというメソッドが何をするメソッドなのか知りたいとします。 しかしRubyでは型宣言をしないので、gsが何のクラスなのかわかりません。 そこでTCPServerクラスのリファレンス(http://www.ruby-lang.org/ja/old-man/html/TCPServer.html)を見るのですが、このサイトのクラスメソッド欄にかいてあるTCPServer.openを呼んでも、戻り値の型が書いていません。 このような場合どうやって、gs.addrメソッドの挙動をしればよいのでしょうか?なお現在は動的にデバックするという方法は無しで考えています。 ご回答よろしくおねがいします。
質問日時: 2011/11/07 06:04 質問者: lain_003
ベストアンサー
1
0
-
rubyのmarkabyの出力の件です
rubyでmarkabyの使用するとhtmソースが普通のエディタでみれません どうしたら表示できるかをよろしくお願いいたします。 =====make_htm.rb/================================================ require 'rubygems' require 'markaby' html = Markaby::Builder.new do head { title 'マイホームページ'} body do h1 "ようこそ" b "項目" ul do li "ライン1" li "ライン2" li "ライン3" end end end puts html =====make_htm.rb/end================================================ を実行すると <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <title>& #12510;& #12452;& #12507;& #12540;& #12512;& #12506;& #12540;& #12472;</title> </head> <body> <h1>& #12424;& #12358;& #12371;& #12381;</h1> <b>& #38917;& #30446;</b> <ul> <li>& #12521;& #12452;& #12531;& #65297;</li> <li>& #12521;& #12452;& #12531;& #65298;</li> <li>& #12521;& #12452;& #12531;& #65299;</li> </ul> </body> と出力されます(改行はあとで付加しました&と#の間にわざとスペースいれてます) これをブラウザでみればちゃんとみえるのですが htmのソースの状態で <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <title>マイホームページ</title> </head> <body> <h1>ようこそ</h1> <b>項目</b> <ul> <li>ライン1</li> <li>ライン2</li> <li>ライン3</li> </ul> </body> と出力するにはどうしたらいいでしょうか str = html.to_s puts Iconv.conv('Shift_JIS','UTF-8',str) とやってみても変わりませんでした。 よろしくご教授おねがいいたします。
質問日時: 2011/11/01 14:23 質問者: yn0323
ベストアンサー
2
0
-
前の質問の住所の追加について。
回答を頂いてやってみたんですが、プログラムを実行して表示された結果は追加出来ているんですが、テキストファイルを開くと追加されていませんでした。 実行したプログラムがテキストファイルにも反映するにはどうしたら良いのでしょうか?? よろしく、お願いします。
質問日時: 2011/10/31 13:15 質問者: runa3829
ベストアンサー
3
0
-
Rails3でAjaxを使いたい
どなたが知識をご教授下さい。 Rails3でAjaxのごく普通のハイパーリンクを作成したいのですが、うまくいきません。 /users/index.html.erb <div id="hoge"> <%= link_to "ajax",{:action => 'draw'},:remote => true %> </div> -- /users/_draw.html.erb ~いろいろ内容~ -- /users/draw.js.erb $('#hoge').html("<%= escape_javascript(render :partial => 'draw' )%>"); -- /users_controller.rb def draw ~いろいろ処理~ end -- ルーティング match 'users/draw' => 'users#draw' -- application.html.erb <%= javascript_include_tag :defaults %> -- gemfile gem 'jquery-rails' 以上のように処理するよう様々なサイトや書籍にはありましたが、「Templete Missing」のエラーが出てしまいます。かれこれ5時間以上ハマってまして、、、 どなたか知識をご教授頂けたら幸いです。 *メモ アクションdrawに渡ったときに、 「request.xhr?がfalse」ということは、ajax通信できていないということでしょうか???
質問日時: 2011/10/29 04:46 質問者: mizunoke88
ベストアンサー
2
0
-
住所の追加について
AddressFileクラスに記録されているハッシュの内容に、新たに名前とメールアドレスを追加するメソッドaddをAddressFileクラスのメソッドとして定義したいんですが、def add以降の作り方がわかりません。 どのように作成したらいいか、教えてください! お願いします。 ○が名前で、△が住所になります。 class AddressFile def initialize(file) @original = file @meibo = {} fo = open("address_list.txt", "r") lines = fo.readlines fo.close for aLine in lines data = aLine.split @meibo[data[0]] = data[1] end end attr_accessor :meibo def search(name) @meibo[name] end def add(name,address) end end obj = AddressFile.new("address_list.txt") obj.add("○○○○", "△△△△") obj.search("○○○○") obj.search("○○○○") obj.search("○○○○") 初心者で申し訳ないですが、お願いします。
質問日時: 2011/10/27 13:08 質問者: runa3829
ベストアンサー
2
0
-
Rubyのクラス
class Test def initialize @ary = Array.new(size){false} end def print _print end def _print print"#{@ary}" end end test = Test.new(5) test.print 上記のプログラムはエラーが出て実行できません。期待している動作は[false,false,false,false,false]です。どうしてエラーが出るか教えていただきたいです。また、解決策もよろしくお願いします。
質問日時: 2011/10/26 14:50 質問者: cheatingkonishi
ベストアンサー
4
0
-
プログラミングについて教えてください!
rubyについてのプログラムで、テキストファイルの中に人の名前と住所が書かれていて、その人の住所が登録されていると、その人の住所が表示され、なければnilを返すプログラムを作りたいと思っていて、 def (search)から後をどう書いたらいいのかわからないので、是非教えていただきたいのでお願いします! class AddressFile def Initialize(file) @original = file @meibo = {} fo = open(file,"r") lines = fo.readlines fo.close for aLine in lines data = aLine.split @meibo[data[0]] =data[1] end end attr_accessor :meibo end def search(name) end end obj = AddressFile.new("address_list.txt") obj.search(○○○○) テキストファイルの中身は、名前、住所の順番で入っています。このプログラムでおかしいとこがあれば、それも教えていただきたいです! よろしく、お願いします!
質問日時: 2011/10/26 11:40 質問者: runa3829
ベストアンサー
2
0
-
rubyのメソッドについて
Ruby初心者(オブジェクト指向はわかります)なのですが、メソッドについてわからないことがあって質問させていただきました。 Net::SMTP.start('smtp.example.com', 25) {|smtp| smtp.send_message(<<-EndOfMail, 'from@example.com', 'to@example.net') From: Your Name <from@example.com> To: Dest Address <to@example.net> Subject: test mail Date: Sat, 23 Jun 2001 16:26:43 +0900 Message-Id: <unique.message.id.string@yourhost.example.com> This is a test mail. EndOfMail } このプログラムの意味を理解しようとしているのですが、どうもわかりません。 私の現在の認識を説明させていただくと、 1)NetクラスのインナークラスであるSMTPクラスのstartメソッドを呼び出している。 2)('smtp.example.com', 25)これはstartメソッドの引数である。 3)|smtp|よくわからない。このstartメソッドの戻り値?startメソッドの中なのに? 4)From: Your Name <from@example.com> ここもよくわからない。なぜ急に変数にも代入しない 文字列を書いたのか? 以上が私の現在の認識と疑問点です。 疑問点はもちろん、認識している点も誤って認識している点があればご指摘いただけると幸いです。
質問日時: 2011/10/25 14:57 質問者: lain_003
ベストアンサー
1
0
-
『マッチしない』をなるべく短く
verは1.8.7です。 ifで文字列が指定した正規表現と『マッチしない』場合を判定したいんですがそのまま書くと unless @value =~ /^[0-9]{4}/ みたいになります。 unlessだと先に条件式を見てからひっくり返さないといけないので『マッチしない』を判別する演算子があればいいのですが、マニュアルのStringとRegexpのページを見ても分かりませんでした。 もしあったら教えてください。あとマニュアルにある場合はどこに書いてあるか教えてもらえると嬉しいです。
質問日時: 2011/10/23 12:57 質問者: rinrin_ring
ベストアンサー
2
0
-
【&:】ってなんですか?
【&:】の後ろにメソッド名を書いたものを見たことがあるんですがこれは何で、どういう動きをするんでしょう? mapやeachの後ろでよく見る気がします。
質問日時: 2011/10/22 10:50 質問者: rinrin_ring
ベストアンサー
2
0
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【Ruby】に関するコラム/記事
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1、Rstudioで回帰直線を求めるため...
-
(再質問)エクセルのマクロボタン...
-
VBScriptでExcel(2019)上のデータ並...
-
Ruby require ライブラリー
-
パソコンのスクリーンセーバーのデ...
-
教えてください
-
pythonエラー
-
<python>ノイズを時間指定して除去...
-
C++のCreateFile関数で、ASCIIコー...
-
ruby OpenURI::Meta
-
ruby while式
-
ruby loopメソッド 変数(再喝)
-
ruby 配列
-
ruby loopメソッド 変数
-
ruby クラス・オブジェクト・インス...
-
ルビー言語 ライブラリー 追記
-
ruby raise句
-
ruby begin句
-
ruby ensure句
-
ルビー言語 ライブラリー(再々渇)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Ruby require ライブラリー
-
ruby loopメソッド 変数(再喝)
-
(再質問)エクセルのマクロボタン...
-
ruby OpenURI::Meta
-
ruby while式
-
ruby loopメソッド 変数
-
1、Rstudioで回帰直線を求めるため...
-
パソコンのスクリーンセーバーのデ...
-
ビーリアルのユーザー名を変えたい...
-
ruby 配列
-
C言語の入力した文字を反転させるプ...
-
ruby クラス・オブジェクト・インス...
-
ルビー言語 ライブラリー 追記
-
100万件越えCSVから条件を満たす行...
-
ルビー言語 csvファイル 続き
-
Ruby newメソッド
-
教えてください
-
ruby raise句
-
英数字を含む文字列(0-9,A-Z)の桁...
-
pythonエラー
おすすめ情報