1 名前:nobodyさん mailto:sage [2008/10/24(金) 17:46:53 ID:???] ■前 Ruby on Rails のスレ が pc11.2ch.net/test/read.cgi/php/1207425569/ ■参考サイト <英語> 本家:www.rubyonrails.org API document:api.rubyonrails.com/ 開発者のblog:weblog.rubyonrails.org/ 参考wiki:wiki.rubyonrails.org/rails <日本語> Rails' wiki: wiki.fdiary.net/rails/ ■参考スレ Rubyについて Part 33 pc11.2ch.net/test/read.cgi/tech/1223709050/ Ruby 初心者スレッド Part 22 pc11.2ch.net/test/read.cgi/tech/1221467121/
21 名前:nobodyさん mailto:sage [2008/11/01(土) 13:41:28 ID:???] インスタンスメソッドとして定義してるんじゃね?
22 名前:19 mailto:sage [2008/11/02(日) 03:33:36 ID:???] このようにメソッドにselfを付けるとうまくいきました class User < ActiveRecord::Base def self.clean end end これがインスタントメソッドなのでしょうか script/runnerやscript/consoleから呼び出す場合はselfを付けるとうまくいっています ただ、一部self無しでも動く場合もあるんですよね 勉強して出直してきます!ありがとうございました
23 名前:nobodyさん mailto:sage [2008/11/02(日) 13:04:46 ID:???] >>22 で定義したのはクラスメソッド。 >>21 は、インスタンスメソッドとして定義してる*から動かない*んじゃね?と言っている。で、それが当たったわけだな。
24 名前:nobodyさん mailto:sage [2008/11/02(日) 14:14:30 ID:???] >>23 そうですね、21さんの言葉をきっかけになんとなくselfを付けてみました Railsはクラスやメソッドを意識しなくてもそれなりに動くものが作れる反面、 自分はRubyについて何もわかってないんだなーと再認識させられました
25 名前:nobodyさん mailto:sage [2008/11/02(日) 21:25:49 ID:???] ほんとにレベル低い質問で申し訳ないんですが、 => Booting WEBrick... => Rails 2.1.2 application started on 0.0.0.0:3000 => Ctrl-C to shutdown server; call with --help for options [2008-11-02 20:35:38] INFO WEBrick 1.3.1 [2008-11-02 20:35:38] INFO ruby 1.8.5 (2006-08-25) [i486-linux] [2008-11-02 20:35:38] INFO WEBrick::HTTPServer#start: pid=17580 port=3000 となってるのにローカルマシンのlocalhost:3000 で見れないのって何ででしょうか? 一応動いていたapache2はとめました。 OSはdebian4.0です。 # gem list /usr/bin/gem:14:Warning: Gem::manage_gems is deprecated and will be removed on or after March 2009. *** LOCAL GEMS *** actionmailer (2.1.2) actionpack (2.1.2) activerecord (2.1.2) activeresource (2.1.2) activesupport (2.1.2) rails (2.1.2) rake (0.8.3) # 一行目の警告がでたので gem install -v=2.1.2 rails しました。 どなたかご教示いただければ助かります。 よろしくお願いいたします。
26 名前:25 mailto:sage [2008/11/02(日) 22:30:43 ID:???] >>25 rebootで解決しました。 ブラウザがクラッシュしてたようです。 お騒がせいたしました。
27 名前:nobodyさん [2008/11/06(木) 02:38:58 ID:uZzb8Dww] さーせん。1つ質問です。 ActiveRecordのhas_many使って 1対多のテーブル関係を持つ(親-子) form_forを使用してデータをhtml表示させたいんですが <%= f.text_field :name %> みたいな感じで、親は表示できるのですが 子を表示させる方法で躓いています。 <%= f.text_field :子のカラム名 %> のような方法で出力できるかと思ったのですが うまくいきません。 どなたか、お願いします。
28 名前:nobodyさん mailto:sage [2008/11/06(木) 22:03:36 ID:???] >>27 つ fields_for
29 名前:27 [2008/11/07(金) 00:12:42 ID:F8NNnS0m] >>28 おおおお!ありがとう!! you will go to heaven!!
30 名前:nobodyさん mailto:sage [2008/11/09(日) 10:33:14 ID:???] postgreでやってるのだが、db:migrateすると idカラム生成の時にシーケンステーブルも自動生成しましたといった NOTICEメッセージがダラダラ出てうざいです。 NOTICE消す方法ってありますか?
31 名前:nobodyさん mailto:sage [2008/11/10(月) 05:39:35 ID:???] Djangoやzopeと比べたRoRのメリットは何があるのでしょうか
32 名前:nobodyさん mailto:sage [2008/11/10(月) 07:09:29 ID:???] >>31 pythonを学習する必要が無い
33 名前:nobodyさん mailto:sage [2008/11/10(月) 19:32:15 ID:???] >>31 求人が多いこと。 すでにDjangoやZopeをマスターしているなら、乗り換える必要性はないと思うけど。
34 名前:nobodyさん mailto:sage [2008/11/12(水) 19:14:27 ID:???] viでRails開発している人っている? つか、みんなどんなエディタ使ってる? #定期的に出る話題だとおもうけど、すまんのう。
35 名前:nobodyさん mailto:sage [2008/11/12(水) 20:21:19 ID:???] Emacsだよ vi使ってる人もたくさんいると思うけどvi使うのが不便なのかい?
36 名前:nobodyさん mailto:sage [2008/11/12(水) 21:41:34 ID:???] netbeansはどうだろう
37 名前:nobodyさん mailto:sage [2008/11/12(水) 21:42:52 ID:???] vim/emacs/TextMate/EmEditorを状況によって使い分けてる。 マカーなので一番多いのはTextMateだがな。 最近NetBeansもお試し中。
38 名前:nobodyさん mailto:sage [2008/11/13(木) 00:23:40 ID:???] vim + ruby-modeで開発してるよ。rails.vimすら使ってない。 色づけとソース整形ができれば十分。
39 名前:nobodyさん mailto:sage [2008/11/13(木) 00:50:35 ID:???] Aptana。1日1回は落ちるけど。 ttp://wota.jp/ac/?date=20060105 ttp://d.hatena.ne.jp/MillyC/20080924/1222255886 この辺にscoped_methodsの話があるけど、 ちょっとコードが複雑で追い切れてない。 with_scopeみたいにブロックの範囲内じゃなく、 任意のタイミングでscopeの開始、終了したいときは、 こんな感じでinstance_evalでscopet_methodsに scopeをpush,popするだけでいいのかな。 def my_scope { :find => {:conditions => ["name <> ?", "name1"] } } end Page.instance_eval do self.scoped_methods << my_scope end pages = Page.find(:all) Page.instance_eval do self.scoped_methods.pop end
40 名前:nobodyさん [2008/11/13(木) 01:38:23 ID:vZzK0dow] Mac OS X 10.5でMacPortsで入れたapache2とrubyとgemで、 passengerを入れて、apache2を自動起動にして、 OSをリブートすると、apache2の自動起動に失敗するようです。 ログイン後、 $ sudo apachectrl start だと、ちゃんと起動するのですが。 httpd.confから、passenger絡みの記述を削除すれば、正常に自動起動します。 何が悪いのでしょう。。。
41 名前:nobodyさん mailto:sage [2008/11/13(木) 10:22:29 ID:???] >>40 Hope this helps. code.google.com/p/phusion-passenger/issues/detail?id=131 >The following code change resolves the problem on my machine: >1. Edit ext/apache2/Hooks.cpp >2. Go to the function 'init_module'. >3. Change 'delete hooks;' to '// delete hooks;' >4. Reinstall Passenger.
42 名前:nobodyさん mailto:sage [2008/11/13(木) 11:53:31 ID:???] vi使ってる人って、Terminal でvi使ってるの? それとも、viアプリケーションみたいなのがあるの? Emacsだと、Terminalでも使えるけど、最近はウィンドウアプリケーションとして使ってる人が多いよね。CarbonEmacsとか。 同じように、viでもウィンドウアプリケーションがあるのかな。
43 名前:nobodyさん mailto:sage [2008/11/13(木) 12:09:13 ID:???] 私はTeraTermから
44 名前:nobodyさん mailto:sage [2008/11/13(木) 13:18:40 ID:???] ActiveRecordの話なんだけど、 たとえば「会社」に「倉庫」が必ず1つあって、 そこで「商品」を扱う場合、 class company < ActiveRecord::Base has_one :storage end class storage < ActiveRecord::Base belongs_to :company has_many :goods end class goods < ActiveRecord::Base belongs_to :storage end ってなると思うんだけど。 倉庫自体はとくに固有のデータは持たなくて、 ActiveRecordの操作系メソッドが欲しいだけなんけど、 storagesテーブルは作成しなくちゃならないのかな。 モデル上、会社が直接商品を操作するんじゃなくて 手続きの集合としての倉庫クラスを置きたいんだけどさ。
45 名前:nobodyさん mailto:sage [2008/11/13(木) 21:31:38 ID:???] >>42 Gtk+を使ったものがあるね。gVim。
46 名前:nobodyさん mailto:sage [2008/11/13(木) 21:33:30 ID:???] >>44 会社オブジェクトにその手続きを持たせても構わないんじゃないの? 「現実にあるモノとそれらの関係」をそのままモデル化する必要はない。
47 名前:nobodyさん mailto:sage [2008/11/13(木) 21:34:48 ID:???] module StorageOperations end class Company < AR::Base include StorageOperations end とか。
48 名前:44 mailto:sage [2008/11/13(木) 23:46:39 ID:???] >>46 ,47 なるほどねー。 手続きはまとめたいので、Moduleでやってみることにします。 ありがとう!
49 名前:nobodyさん mailto:sage [2008/11/14(金) 03:14:57 ID:???] >>34 vimとscreenとbashでやってる。 macだからTerminal.app上で。 rails.vimはいれてるけど、使かわなくなってる。てか使いこなせてない。 まわりに使ってる人もいないし、 emacsやほかのエディタと比較してどうかはわからない。
50 名前:nobodyさん mailto:sage [2008/11/14(金) 03:29:40 ID:???] Merbどうすか? 思ったよりメモリ食うイメージがあって手を出してないんですが
51 名前:nobodyさん mailto:sage [2008/11/14(金) 10:27:06 ID:???] まだ情報少ないし、これからって感じかな。 趣味で試すには面白そう。 でも仕事はRailsかな。 チームのみんながある程度習熟してないと困るし。
52 名前:nobodyさん mailto:sage [2008/11/14(金) 17:04:20 ID:???] rubyフレームワークが増えるとRailsの開発にも刺激になってよさそうですね
53 名前:nobodyさん mailto:sage [2008/11/14(金) 20:01:15 ID:???] 簡単なアプリで比べたけどMerbもrailsも メモリーの使用量は変らない。 1プロセス、35MB以上くう。 railsはメモリーくいすぎ。
54 名前:nobodyさん mailto:sage [2008/11/14(金) 22:57:38 ID:???] >>42 Terminalだね。WindowsからPoderosaでLinuxにアクセスしてる。
55 名前:nobodyさん mailto:sage [2008/11/14(金) 23:44:05 ID:???] 何がメモリくってんのかな。 rubyが悪いのか、ActiveRecordがわるいのか、ActionPackか? PHPでなんかしらのフレームワーク使った場合と比べてどうなんすかね
56 名前:nobodyさん mailto:sage [2008/11/16(日) 03:32:41 ID:???] バイナリのカラムを検索するいい方法はないでしょうか。 create_table :hosts do |t| t.binary :macaddr, :limit => 6 t.string :hostname end のようなテーブルを作って、MACアドレスをバイナリで保存する処理を考えているのですが、 Host.find_by_macaddr(mac_bin) のようにMACアドレスで検索しようとしたらログに ActiveRecord::StatementInvalid: SQLite3::SQLException: unrecognized token: "'": SELECT * FROM "hosts" WHERE ("hosts"."macaddr" = '') LIMIT 1 と出力され、うまくいきません。 Host.find_by_macaddr(ActiveRecord::ConnectionAdapters::SQLiteColumn.string_to_binary(mac_bin)) のようにすることで一応動くのですが。
57 名前:nobodyさん mailto:sage [2008/11/17(月) 00:52:51 ID:???] 質問スレが見当たらなかったのでこちらで失礼します。 RailsでURLをクリックした時に、そのURLをcontorollerに渡す方法はありますか? URLは、link_to title,urlで生成されているものです。
58 名前:nobodyさん mailto:sage [2008/11/17(月) 03:21:33 ID:???] >>57 コントローラではrequest.url、request.request_uriあたりじゃね? 何が返るのかは定義を見ること。 # 実は referr?er だったり……
59 名前:nobodyさん mailto:sage [2008/11/18(火) 01:48:36 ID:???] routesの書き方、という意味なら 「URLをパラメータにする Rails」あたりでぐぐる
60 名前:57 mailto:sage [2008/11/21(金) 03:55:17 ID:???] >>58 ,59 そんなやり方があったのですね、どうもありがとうございます。 重ねてまた聞きたいのですが、外部のサイトに飛びつつactionも呼ぶことって出来ますか? 具体的に言うと、yahooの検索apiから結果を取得してresultsに入れたものを view上で <% @results.each do |result| %> <li><%= link_to result.Title, result.ClickUrl %></li> <% end %> のように書き、このリンクをクリックした時にactionを呼び出して、そこでrequest.urlを使って色々とやりたいのですが。。
61 名前:nobodyさん mailto:sage [2008/11/21(金) 11:39:00 ID:???] >>60 redirectでいいんじゃね? 「HTTP redirect」でぐぐってみて。
62 名前:nobodyさん mailto:sage [2008/11/21(金) 21:49:12 ID:???] >>60 コントローラの中で @results が得られて、それをビューで一覧。 ビューに示されたリンクを辿ると最終的に該当URLに飛ぶ、ということか。 コントローラに def goto redirect_to params[:url] # 値に対してなんらかの検証をしたほうがいいかも。 end みたいなリダイレクト専用アクションを用意して <%= link_to h(result.Title), :action => 'goto', :url => result.ClickUrl %> JavaScriptが使えるならクライアントサイドのみで <%= link_to_function h(result.Title), %Q|location.href="#{result.ClickUrl}"| %> とかも可能かも。
63 名前:nobodyさん mailto:sage [2008/11/22(土) 04:30:32 ID:???] クリックされたリンクをロギングしたいってことだよね。 なら >>61-62 みたいに、リダイレクトが一番素直でしょ。 でもこれだと訪問済リンク問題がでるから、これを避けたい場合 >>62 みたいにJavaScriptを使うことになる。 Googleの検索結果ページは後者だよね。
64 名前:nobodyさん mailto:sage [2008/11/22(土) 06:12:17 ID:???] さすがに location.href の書き換え先が対象URLじゃぁアクションは起こらないな。 <%= link_to_remote h(result.Title), :url => { :action => 'goto', :url => result.ClickUrl } %> か?
65 名前:nobodyさん mailto:sage [2008/11/22(土) 21:19:46 ID:???] 上手く説明できるかどうか分からんしRubyスレ行きかもしれんが、質問。 migrationしてデータベースと Hoge modelだけ作って、 ./script/console からデータベースをいじってる。 hoge = Hoge.new() してhoge.name = hage などしてデータを入れて、 hoge.save をした。 その後 hoge2 = Hoge.find(:all, :conditions=>"name = hage") をして データを呼び出したんだが、これが array クラスになってしまって、 hoge2.name で hage を呼び出せない。 要は Hoge.find で呼び出したデータを簡単に Hoge クラスとして扱いたい。 どうしたらいいのか教えてほしい。
66 名前:nobodyさん mailto:sage [2008/11/22(土) 21:48:48 ID:???] find :all しているのでArrayになる。条件に該当するオブジェクトを全部取得するので。 name = "hage" がユニークなら、Hoge.find(:first, :conditions => ["name => ?", "hage"]) や Hoge.find_by_name("hage") とすればいい。 あるいは、仕様上 name = "hage" のオブジェクトが複数存在するなら、 hoges = Hoge.find(:all, :conditions=>"name = hage") hoges.each{|hoge| do_something} と複数のオブジェクトに対して順に処理すればいい。
67 名前:nobodyさん mailto:sage [2008/11/22(土) 22:02:19 ID:???] 一個も無い時の返り値にも違いがあるのでご注意あれ
68 名前:nobodyさん mailto:sage [2008/11/23(日) 01:08:31 ID:???] 1個しかなくても:allなら配列で [ hage ] が返るってことだな。
69 名前:nobodyさん mailto:sage [2008/11/23(日) 04:16:51 ID:???] 質問させてください。環境はrails 2.2.2です。 www.tutorialspoint.com/ruby-on-rails-2.1/index.htm を参考に初めてrailsやってるんですが、 www.tutorialspoint.com/ruby-on-rails-2.1/rails-views.htm まできて、 /book/list にアクセスした際に、「テンプレートが無い」ではなく、「uninitialized constant BookController::Book」となりました。 見た感じ、BookControllerというクラスにBookなんて変数無い、と見えたので、BookControllerのlistメソッドを下記のように変更したら、次に勧めました def list + @books = Books.find(:all) - @books = Book.find(:all) end これはチュートリアルの間違いですか?それとも2.1と2.2.2の違いですか?
70 名前:nobodyさん mailto:sage [2008/11/23(日) 06:20:47 ID:???] ls app/modelsして、そこにあるファイルの内容を貼ってみて。
71 名前:nobodyさん mailto:sage [2008/11/23(日) 06:22:06 ID:???] たぶんあなたが ruby script/generate Book とすべきところを ruby script/generate Books としてしまったのではないかと思うのだが。
72 名前:nobodyさん mailto:sage [2008/11/23(日) 06:23:02 ID:???] modelが抜けた。
73 名前:nobodyさん mailto:sage [2008/11/23(日) 13:43:37 ID:???] >>70-72 app/modelsにbooks.rbがあるのと、コマンド履歴に>71がありました。 どう見てもtypoです。本当にありがとうございました。
74 名前:nobodyさん mailto:sage [2008/11/24(月) 02:00:37 ID:???] 皆さんどこでrails覚えましたか?
75 名前:nobodyさん mailto:sage [2008/11/24(月) 03:10:41 ID:???] ベッドの上よ。うっふん
76 名前:nobodyさん mailto:sage [2008/11/24(月) 13:43:36 ID:???] guides.rubyonrails.org/index.html 入門向けコーナーができたらしい
77 名前:nobodyさん mailto:sage [2008/11/25(火) 16:25:16 ID:???] >>66 遅くなりましたが、ありがとうございます。解決しました。
78 名前:nobodyさん mailto:sage [2008/11/25(火) 17:37:28 ID:???] validationしたときのエラー情報は、どこに保存されてますか? model? controller? それともどっか別の場所?
79 名前:nobodyさん mailto:sage [2008/11/25(火) 18:49:48 ID:???] >>78 ActiveRecord::Errorsオブジェクト。 validate対象オブジェクトのerrorsメソッドで取り出せる。 validateを自分で定義したりvalidates_eachの場合は errors.addで自分でエラーを突っ込む必要がある。 api.rubyonrails.org/classes/ActiveRecord/Validations.html api.rubyonrails.org/classes/ActiveRecord/Errors.html
80 名前:nobodyさん mailto:sage [2008/11/25(火) 19:54:59 ID:???] >>79 ちょーさんくす あいしてる
81 名前:nobodyさん mailto:sage [2008/11/26(水) 16:26:48 ID:???] Merbが徐々に盛り上がってきましたね
82 名前:nobodyさん mailto:sage [2008/11/26(水) 22:20:54 ID:???] Engine Yardの懐具合によっては開発スピード落ちるかもしれんね。
83 名前:nobodyさん mailto:sage [2008/11/27(木) 14:54:31 ID:???] Rubyってスタンドアロンのアプリ作れる?
84 名前:nobodyさん mailto:sage [2008/11/27(木) 15:41:55 ID:???] >>81 >Merbが徐々に盛り上がってきましたね どのへんで?
85 名前:nobodyさん mailto:sage [2008/11/27(木) 22:36:19 ID:???] >>83 想定しているモノが行き違っている気はするが、作れる。 >>84 アンテナ低すぎ。
86 名前:nobodyさん mailto:sage [2008/11/28(金) 04:24:33 ID:???] >>82 rubiniusは縮小らしいですからね… ところでRails画像アップロードプラグインって今もFile_columnが最強ですかね?
87 名前:nobodyさん mailto:sage [2008/11/28(金) 15:14:55 ID:???] Merbのrailsに対するメリットって何?
88 名前:nobodyさん mailto:sage [2008/11/28(金) 16:09:21 ID:???] >>85 >アンテナ低すぎ。 Railsはメディアが取り上げたりしてるから、盛り上がってるのはわかる。 でもMerbは個人のブログでその名をちょくちょく見かける程度で、どうみても盛り上がってるようにはみえない。 だから、どこでMerbが盛り上がってるのか聞いたんだけど?アンテナ高い>>85 が教えてくれ。
89 名前:nobodyさん mailto:sage [2008/11/28(金) 16:14:38 ID:???] Merbは先日1.0がリリースされたんで国内外のブログが取り上げただけだろ。 Merbにするメリットってあんまりないきがする。
90 名前:nobodyさん mailto:sage [2008/11/28(金) 18:14:03 ID:???] MyModel.transaction do end だけれど、これってどのモデルのtransactionメソッド呼ぼうが 違いは無いという認識でよい? テーブル毎にトランザクションの単位がかわるわけではないし。
91 名前:nobodyさん mailto:sage [2008/11/29(土) 12:20:47 ID:???] railsって流行ってるみたいだけどどうやったら使えるの?
92 名前:nobodyさん mailto:sage [2008/11/29(土) 15:14:54 ID:???] >>91 おまいにはムリ というレスが明日までに10はつくであろう
93 名前:nobodyさん mailto:sage [2008/11/29(土) 20:11:35 ID:???] rails 2.2.2でマイグレーションについて質問させてください。 booksテーブルを作成し、カラムを追加する手順です。 ■booksテーブルを作成 ./script/generate model Book ■booksテーブルにカラム作成するためにファイル編集 vi db/migrate/20081129110040_create_books.rb class CreateBooks < ActiveRecord::Migration def self.up create_table :books do |t| t.string :title end end 以下略 ■DB作成 rake db:create ■migrate rake db:migrate booksテーブルが出来る。カラムはidとtitleのみ
94 名前:nobodyさん mailto:sage [2008/11/29(土) 20:12:29 ID:???] 続き ■booksテーブルにnameカラムを追加するためにファイル編集 ./script/generate migration books_add_name vi db/migrate/20081129110451_books_add_name.rb class BooksAddName < ActiveRecord::Migration def self.up add_column(:books, :name, :text, :default=>'') end def self.down ramove_column(:books, :name) end end ■migrate rake db:migrate ここまででbooksテーブルを作成し、カラム追加ができるのですが、以下が疑問です。 ・booksテーブル作成時、 ./script/generate model Book のように「Book」と単数形で実行したのに、何故出来上がるのは「books」という複数形なのか ・そもそもスキーマを変更する手順はこれで合っているか 以上をよろしくお願いします・・
95 名前:nobodyさん mailto:sage [2008/11/29(土) 20:17:49 ID:???] CoC。テーブル名は複数形 ファイル編集せずに $ ./script/generate model Book title:string name:text とかやった方がいいよ。 なんでnameがtextなのか知らんけど。 本番になるまではテーブルなんて壊し放題なんだから add_columnとかするよりも元のファイル書き換えて $ rake db:migrate VERSION=0 $ rake db:migrate で作り直しちゃった方が良い。
96 名前:nobodyさん mailto:sage [2008/11/29(土) 20:51:55 ID:???] >>95 > CoC。テーブル名は複数形 「設定より規約」で、「テーブル名は複数形、そのテーブルを扱うモデルは単数形」というルールがあるから、 自動的に複数形になるってことですか? > ファイル編集せずに ファイル編集した理由が、 www.tutorialspoint.com/ruby-on-rails-2.1/rails-active-records.htm に従ったからなんですが、開発時のスキーマ定義は普通generateの引数に取るものなのですか? 開発時の常識とか、普通はこうする、とかを全然知らないので分からないので、変なところがあれば指摘してもらえると助かります。 参考に、redmineと9arrowsのソースを見たのですが、redmineはスキーマ変更用のマイグレーションファイルがたくさんあって、 9arrowsはスキーマ作成用のしかなかったので、95氏のいうような手法のようです。 > 本番になるまではテーブルなんて壊し放題なんだから 確かに開発時はその方法の方がスマートですね。 本番になった後にスキーマ変更したい場合なのですが、>94の方法は変なことをやっていますか?
97 名前:nobodyさん mailto:sage [2008/11/29(土) 21:41:46 ID:???] それ自体は全然変じゃないよ。 本番になった後はもちろんそうする。 ただスキーマ定義はgenerateの引数の方が手っ取り早いかな。 generateしたあとでファイル開いて編集するの面倒だし。 あと、generateコマンド使うと勝手に複数形になってしまうので そういうもんだと思った方がいい。 generateコマンド使わないなら、テーブル名を単数形にすることもできる。 class Book < ActiveRecord::Base set_table_name 'book' end
98 名前:nobodyさん mailto:sage [2008/11/29(土) 23:10:10 ID:???] >>97 勉強になりました、ありがとうございます。
99 名前:nobodyさん mailto:sage [2008/11/29(土) 23:40:23 ID:???] 質問です。今作ってるWebアプリでユーザ管理をしようと思っています。 そのために下記のページを参考にしているのですが、暗号の作り方 の部分がいまいちよく分かりません。 ttp://d.hatena.ne.jp/nyaago69/20080904/1220519371 特にdef self.new_salt の中身が分かりません。 rand.to_s.tr('+', '.') と書いてありますが、randを使ってる限り その中に+が入り込むことはないと思いますし、 s[0, if s.size > 32 then 32 else s.size end] は何をやっているのか分かりません。 解説をお願いします。
100 名前:nobodyさん mailto:sage [2008/11/30(日) 00:19:54 ID:???] randはわからんが・・・ 「s[0, if s.size > 32 then 32 else s.size end]」は RubyのStringには「self[nth, len]」という書式があって、 文字列のnthバイト目から長さlenバイト目までの部分文字列を新しく作って返す よって質問文の意味は、sの最初から32バイト以上ならsの32バイト分、それ以下ならsを返すという意味になる ていうかこんな書き方できるんですね、勉強になりマスタ
101 名前:nobodyさん mailto:sage [2008/11/30(日) 00:39:29 ID:???] >>100 ありがとうございます。自分はてっきり配列を作るときのtypoかと思ってました。
102 名前:nobodyさん mailto:sage [2008/11/30(日) 00:58:12 ID:???] >>86 新顔でPaperclipというのが出た。 www.thoughtbot.com/projects/paperclip/ attachment_fuから乗り換えた人の記事。 thewebfellas.com/blog/2008/11/2/goodbye-attachment_fu-hello-paperclip
103 名前:nobodyさん mailto:sage [2008/11/30(日) 01:53:51 ID:???] rakeでconfigsというテーブルを作った際、初期データも入れようと思って カラム定義の次に Config.create() したら「createなんてメソッド無いよ」と言われ、 どー見ても合ってるのにと思ってしばらく悩んだ結果、 Config がrailsの予約語だったからのようなのですが(confにしたらテーブル作成に加えcreateもできたので)、 予約語に使われている語はテーブルにすら使ってはいけませんか?
104 名前:nobodyさん mailto:sage [2008/11/30(日) 01:59:30 ID:???] たしかAdminもダメだったような気がする
105 名前:dai [2008/11/30(日) 08:55:02 ID:mlKxK2ns] actives_caffoldについてご教示下さい。 2つのmodelを定義して、片方にだけ{カラム名}_columnを指定しようとした のですが、同じカラム名を使っていると両方のmodelに適用されてしまうの は仕様でしょうか。 例えば、 ruby script/generate model aaa title:string name:string ruby script/generate model bbb title:string name:string のようにmodelを生成し、各controllerにactivescaffoldの設定を行った後 にaaa_helper.rbにのみtitle_columnを設定。 ------------ class AaaController < ApplicationController active_scaffold :aaa do |config| : ------------ module AaaHelper def title_column(record) link_to(h(record.title), :action=>:●●●) end end ------------ こうすると、title_columnを設定していないbbbのtitleにもlink_toが適用 されてしまいます。 (ruby1.8.6、rails2.0.2、activescaffold1.1.1)
106 名前:nobodyさん mailto:sage [2008/11/30(日) 11:11:34 ID:???] 質問です。 日付を保存するのにDateクラスを使ってます。 このDateクラスのデータを上手く使ってweeks.agoなどの 演算をしたいのですが、どのようにすればいいのか分かりません。 よろしくお願いします。
107 名前:nobodyさん mailto:sage [2008/11/30(日) 13:07:05 ID:???] Date.tody - 2.weeks じゃだめってこと?
108 名前:nobodyさん mailto:sage [2008/11/30(日) 13:47:31 ID:???] >>107 その方法で出来ました。 メソッドだけで完結せねばという思い込みが頭にありました。 ありがとうございます。
109 名前:nobodyさん mailto:sage [2008/11/30(日) 14:56:43 ID:???] 質問です。今ARの勉強をしています。 Magazine_titleというモデルとMagazineというモデルを作りました。 それぞれ以下のような関係性を持たせています。 class MagazineTitle < ActiveRecord::Base has_many :magazines end class Magazine < ActiveRecord::Base belongs_to :magazine_title end ここで、MagazineTitleのパラメータ次第で、Magazineの パラメータを設定したいと考えています。具体的には、 magazine_title.cycle == "weekly" であった場合、 magazie.sale_close_date = magazine.sale_date + 1.weeks としたいのです。 これを出来ればmodelでやりたいのですが、 そのような方法はあるでしょうか? それともcontorollerでやる方が適切でしょうか? どうかご助言をお願いします。
110 名前:nobodyさん mailto:sage [2008/11/30(日) 15:06:05 ID:???] 大乳児^H^H^H代入時に固有の動作をさせたいなら メソッドを定義してしまえばいいんじゃない? class Magazine def magazine_title=(mt) write_attribute(:matazine_title, mt) write_attribute(:sale_close_date, sale_date + 1.week) end end
111 名前:nobodyさん mailto:sage [2008/11/30(日) 15:07:23 ID:???] あれ、1つめのwrite_attributeはwrite_attribute(:magazine_title_id, mt.id) か。
112 名前:nobodyさん mailto:sage [2008/12/03(水) 11:06:41 ID:???] windowsに開発環境をセットアップする手順を 詳しく丁寧に教えてください。
113 名前:nobodyさん mailto:sage [2008/12/03(水) 11:15:31 ID:???] やっぱubuntuでいいや
114 名前:nobodyさん mailto:sage [2008/12/03(水) 21:40:37 ID:???] >>112 Instant Rails
115 名前:nobodyさん [2008/12/04(木) 13:49:56 ID:ORX+Oq69] webrickを起動するとアクセスログがコンソールに出力され続けますが、 これをコンソールじゃなくてファイルに出力するにはどうしたらよいのでしょうか?
116 名前:nobodyさん mailto:sage [2008/12/04(木) 20:12:28 ID:???] >>115 $ script/server > /dev/null 2>&1 じゃね?
117 名前:115 [2008/12/04(木) 20:40:28 ID:ORX+Oq69] >>116 $ script/server > /tmp/test.log 2>&1 としても/tmp/test.logに出力されなかったです
118 名前:nobodyさん mailto:sage [2008/12/04(木) 22:28:19 ID:???] >>117 こちらの環境ではファイルに出力されますねぇ。 (バッファされるので時間差があるけど。) というかlog/development.logではだめなんですか。
119 名前:115 [2008/12/05(金) 12:07:03 ID:KklI24b5] >>118 /tmp/test.logは作成されますが、中身が空のままになります 時間差ってどれ位ですか? log/development.logだと、何時にどこからどんなmethodで どんなリクエストがあってどんなステータスコードを返したかとかが わからないので、WEBrickが吐き出すログが欲しいんです
120 名前:nobodyさん mailto:sage [2008/12/05(金) 18:54:48 ID:???] webrickのアクセスログはサーバインスタンス生成時に設定する svr = WEBrick::HTTPServer.new(:AccessLog=>設定内容} 詳しくはリファレンスマニュアルとソース読め railsでどのファイルをいじればいいかは知らん
121 名前:nobodyさん mailto:sage [2008/12/06(土) 00:13:43 ID:???] mongrel入れてみたら分かるんじゃないかな。 WEBrickほとんど動かしてないからあれだけど。 mongrelのlog/development.logならお望みのものは分かるような。