1 名前:nobodyさん [2009/09/13(日) 20:49:34 ID:kz4rC4Dx] ■前 Ruby on Rails Part7 pc11.2ch.net/test/read.cgi/php/1241100447/ ■参考サイト <英語> 本家: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 37 pc12.2ch.net/test/read.cgi/tech/1251029267/ Ruby 初心者スレッド Part 30 pc12.2ch.net/test/read.cgi/tech/1249687283/
335 名前:nobodyさん mailto:sage [2009/10/31(土) 10:44:38 ID:???] Railsのプロジェクトをチェックアウトして更新したのですが、追加したページにアクセス出来ません。 The page you were looking for doesn't exist. You may have mistyped the address or the page may have moved. というページが表示されます。Apacheを再起動してみましたが、表示されないままでした。 以前からあったページにはアクセスできますし、Mongrelを立ち上げてローカルからはアクセス出来ます。 production.logを確認してみましたが、何も書かれていませんでした。 環境はFedora10 + Apahe + passengerです。 どなたか解決方法を教えて頂けないでしょうか。 よろしくお願いします。
336 名前:nobodyさん mailto:sage [2009/10/31(土) 11:17:28 ID:???] >>335 そのエラーてどこのレベルでててるんだろ。 真ん中に赤枠があって、その中にエラー文字列があるなら、Railsがエラーはいているだろうけど apacheのログ確認してみた?
337 名前:nobodyさん mailto:sage [2009/10/31(土) 11:49:10 ID:???] "GET/financial_statenents HTTP/1.1" 404 ログの見方はよく分からないのですが、Railsで用意された404が表示されているみたいです。
338 名前:nobodyさん mailto:sage [2009/10/31(土) 12:10:24 ID:???] 追加したってのは、Rails.root 直下の public の下にHTMLファイルを 追加したってこと? Railsの機能を追加したってこと?
339 名前:nobodyさん mailto:sage [2009/10/31(土) 12:47:05 ID:???] 新しいコントローラのクラスと、それに対応するビュー、モデル、データベーステーブルを追加しました。
340 名前:nobodyさん mailto:sage [2009/10/31(土) 12:59:55 ID:???] とりあえず、apacheではなくRailsプログラムの問題のようなので、 developmentモードで動かしてみる →Passengerの設定にRailsEnvというのがある。 または、 productionモードのまま、ログレベルを:debugに変更 →config/environments/production.rbを弄る。 などでより詳しい情報を得ることを勧める。
341 名前:nobodyさん mailto:sage [2009/10/31(土) 13:34:57 ID:???] 何度も申し訳ないのですが、Passengerの設定ファイルってどこにあるのでしょうか?
342 名前:nobodyさん mailto:sage [2009/10/31(土) 14:46:41 ID:???] PassengerでRailsEnv指定できました。 Routing Error no route found to match "/financial_statements" with{:method=>:get} という表示に変わりました。routes.rbに何か設定を追加すればよいのでしょうか?
343 名前:nobodyさん mailto:sage [2009/10/31(土) 14:50:58 ID:???] いいかげんにしろ
344 名前:nobodyさん mailto:sage [2009/10/31(土) 15:00:09 ID:???] /financial_satementesというURLでRailsになんらかのアクションを してほしいなら、あなたが追加したコントローラとそいつのメソッド がそのURLにマッピングされなければならない。 rake routes してみるとおそらく /financial_statements に反応する ルールがないはず。 routes.rbに map.resources :financial_statements とでも書けばいいんじゃない?
345 名前:nobodyさん mailto:sage [2009/10/31(土) 15:39:28 ID:???] 回答有り難うございます。 map.resources :financial_statementes は上手くいきませんでした。 同じようなURL(/controllername)はマッピング出来ているのに/financial_statementsはエラーになる理由がよく分からないです。。
346 名前:nobodyさん mailto:sage [2009/10/31(土) 15:42:24 ID:???] まー、あとは routes.rb の問題ぽいからドキュメントみつつ rake routes しつつ、試行錯誤してくれい。
347 名前:nobodyさん mailto:sage [2009/10/31(土) 19:08:53 ID:???] おまたせしました 質問です RoRはWindows7で動作しますか?
348 名前:nobodyさん mailto:sage [2009/10/31(土) 20:26:19 ID:???] 動かないと思います
349 名前:nobodyさん mailto:sage [2009/11/05(木) 17:41:39 ID:???] Ruby on Rails解説書の定番"Agile Web Development with Rails"の 日本語最新版『RailsによるアジャイルWebアプリケーション開発 第3版』が、 この2009年11月末にオーム社より発行されます。 ついにでるー.
350 名前:nobodyさん mailto:sage [2009/11/05(木) 21:57:32 ID:???] >>350 d ssl.ohmsha.co.jp/cgi-bin/menu.cgi?&ISBN=978-4-274-06785-3
351 名前:nobodyさん mailto:sage [2009/11/05(木) 23:41:40 ID:???] Head first railsもRails2.3対応で同時期に出るらしいんだけど, どっちがいいかな
352 名前:nobodyさん mailto:sage [2009/11/06(金) 01:47:30 ID:???] 以下のようなプログラムを作成し、実行しています。 strSQL="select count(*) as cnt ,fk_table_id from datas where del_flg=0 group by id order by count(*)" hoge=Data.find_by_sql(strSQL) -------- <table> <%for i in (0..hoge.length-1) %> <tr><td><%=hoge[i].fk_table_id%></td><td><%=hoge.cnt%></td></tr> <%end %> </table> ----------------- ですが、ときどき undefined method `fk_table_id` というエラーがエラーログに出ています。 何か対処方法はないでしょうか? sqlは一例で、日によって発生場所がまちまちになっています。 環境 os centos ruby 1.8.7 p-174 rails 2.1.2 mysql tritonn-1.0.12-mysql-5.0.67 クエリキャッシュを有効にしていたのですが エラーの出現回数があまりに多いので 毎回クリアさせてみたところ多少減りました。
353 名前:nobodyさん mailto:sage [2009/11/06(金) 01:47:47 ID:???] そのタイミングでrails3が来たら全員涙目w
354 名前:nobodyさん mailto:sage [2009/11/06(金) 03:08:33 ID:???] 一度出たら2年くらい出ないから、3系を待ってくれた方がよかったかも 正直2.3系はあまり困ってない
355 名前:nobodyさん mailto:sage [2009/11/06(金) 17:55:44 ID:???] 質問させてください。 /lib/xxx.rbのモジュールをControllerでincludeして利用しています。 BackgrounDRb(/lib/workers/yyy_worker.rb)でも xxx.rbのモジュールをincludeして利用したいのですがどうすればいいでしょうか?
356 名前:nobodyさん [2009/11/07(土) 00:52:56 ID:ygEaPrn0] Rails勉強中なのですが、DBのリレーションのところでつまずいてます。 目的:下記条件下で、new.html.erbから名字と子供のnameを登録したい。 テーブル Parent id: myoji: Child id: parent_id: name: という二つのテーブルがあり それぞれのモデルには、 has_one :child belongs_to :parent を指定しています。
357 名前:nobodyさん [2009/11/07(土) 00:54:17 ID:ygEaPrn0] 上の続きです。 コントローラーには、 main.rb def new @user = Parent.new end def create @user = Parent.new(params[:data]) @user.save end Viewのnew.html.erbには <% form_for :parent,@user,:url=>{:action=>'create',:id=>@user} do |form|%> 名字:<%= form.text_field :myoji %> 名前:<%= form.text_field :name %> <%submit_tag '登録'%> <%end%> とします。 間違っているところを具体的ご指摘いただけないでしょうか。 rails rubyなどは最新バージョンです。
358 名前:nobodyさん [2009/11/07(土) 01:01:03 ID:ygEaPrn0] すみません。 @user = Parent.new(params[:data]) ではなく、 @user = Parent.new(params[:user]) だと思うのですが、、、まちがってますよね。。。
359 名前:nobodyさん mailto:sage [2009/11/07(土) 02:01:48 ID:???] >>355 も>>356 も、どう困ってるか書いてないのだが同じやつか?
360 名前:nobodyさん mailto:sage [2009/11/07(土) 02:36:17 ID:???] 自分でも何が分かってないのか分かってないんだろ。 なんかよく分からないけどヒントください、みたいな。
361 名前:nobodyさん [2009/11/07(土) 02:36:32 ID:ygEaPrn0] いえ、違う人です。 いろいろ変えてやってみたのですがいろいろなエラーで 収集がつかなくなったので、根本的に、基本的なところで どう間違っているのか、指摘してもらえればありがたいなーと 思いまして。。(^^;;
362 名前:nobodyさん mailto:sage [2009/11/07(土) 02:39:37 ID:???] そのコントローラーに対してどういうアクセスをしたのか、 その結果どういうエラーが出たのか、 具体的に示さないとあかの他人がアドバイス出来るはずないでしょ。
363 名前:nobodyさん mailto:sage [2009/11/07(土) 08:13:45 ID:???] 何もしてないならコントローラの名前がmain.rbって時点で変。
364 名前:nobodyさん mailto:sage [2009/11/07(土) 08:40:04 ID:???] ずーっと使っているとメモリの消費量がすごいことになるんだけど どうしたらいいの? いったん再起動するの?
365 名前:nobodyさん [2009/11/07(土) 09:14:59 ID:iBTE7BNg] 自分の場合、monitなどの監視ツールでメモリの使用量が一定量を超えたら自動で再起動させてる
366 名前:nobodyさん mailto:sage [2009/11/07(土) 09:15:41 ID:???] freeしても使用メモリはOSが実際に必要とするまで返還されなかったり するからとりあえずOSとかいろいろ教えれ。
367 名前:nobodyさん mailto:sage [2009/11/07(土) 09:22:59 ID:???] >>364 放っておくと死ぬから頻繁に再起動するしかないw
368 名前:nobodyさん [2009/11/07(土) 09:53:27 ID:iBTE7BNg] Passengerの場合は、5分間アクセスがなければプロセスを終了させるとか、1000回アクセスを処理したら終了などの設定ができるので、特にツールを使わなくても再起動できるのでおすすめ。
369 名前:nobodyさん mailto:sage [2009/11/07(土) 11:37:51 ID:???] rubyってガベコレしてないの?
370 名前:nobodyさん mailto:sage [2009/11/07(土) 12:03:22 ID:???] してるけど、Conservative GCなのでどうがんばっても回収漏れは発生する。
371 名前:nobodyさん mailto:sage [2009/11/07(土) 12:07:23 ID:???] >>366 ubuntu 8.04をxp上のvmware playerで動かしてる メモリの割り当ては512M monitなどで再起動か なるほろ
372 名前:nobodyさん mailto:sage [2009/11/07(土) 12:14:14 ID:???] GCはOSからもらっているメモリで再利用していいはずの 箇所を実際に再利用できるようにすることなので、 OSにメモリを返すという意味ではない。
373 名前:nobodyさん mailto:sage [2009/11/07(土) 14:27:25 ID:???] じゃあ再起動しなくていいはずなのに どうして再起動しないと固まるんだろうw
374 名前:nobodyさん mailto:sage [2009/11/07(土) 15:00:41 ID:???] GC以外のところに原因があるからという風に読めるな
375 名前:nobodyさん mailto:sage [2009/11/07(土) 16:06:55 ID:???] railsお勧めのレン鯖って存在しますか?
376 名前:nobodyさん mailto:sage [2009/11/07(土) 16:36:34 ID:???] メモリリークしまくるのはオブジェクト指向言語の伝統だし。
377 名前:nobodyさん mailto:sage [2009/11/07(土) 16:40:02 ID:???] ちょいと質問があります。 modelに書く処理をmoduleにまとめておきたいのですが、うまく行きません。 module内にnamedscopeの定義をまとめて書いたのですが、 undefined method `named_scope' for ModelSupport:Module などといわれてしまいます。 現在は例として以下のような感じで記述しています(名前は例なのでつっこまないで) item.rb(Itemモデル)に class Item < ActiveRecord::Base include ModelSupport end lib/model_support.rbに、 module ModelSupport named_scope :new_post, lambda{|num| {:limit => num}} end うまく、module化するにはどのように書いたものでしょうか?
378 名前:nobodyさん mailto:sage [2009/11/07(土) 16:42:07 ID:???] >>375 定評あるのはslicehostかな? 最近なら、Rackspaceとか
379 名前:nobodyさん mailto:sage [2009/11/07(土) 17:02:18 ID:???] >>375 ちょっと試したいだけなら heroku の無料プラン。 >>377 その書き方の場合、named_scope は module ModelSupport のスコープで実行される。 実行されるというのはメソッドが呼ばれるという意味ね。 例) module Hoge puts "hoge" end #=> hoge 単なるモジュールな ModelSupport は named_scope を知らないので undefined method になる。 で、どうすればいいかというとリフレクションを使う。 module ModelSupport def self.included(base) base.class_eval do named_scope :new_post, lambda{|num| {:limit => num}} end end end module が include されたときに included が呼ばれるので、 class_eval を使って base(=includeしたクラス)のコンテキストで name_scope を呼ぶ。
380 名前:377 mailto:sage [2009/11/07(土) 17:12:43 ID:???] >>379 うほっ!できました、できました! 他のRailsプラグインとかもそういうような書き方しててナンダコレ?とか思ってました。 スコープ考慮しないといけないんですね。 これ、慣用句的な書き方みたいですね。 今までmoduleの中身はincludeした方のスコープで動くもんだと思ってたw そういうことだったのか
381 名前:nobodyさん mailto:sage [2009/11/07(土) 19:06:05 ID:???] >>373 >>じゃあ再起動しなくていいはず 逆。OSには返してないわけだから、基本的にOSから見た プロセスが食うメモリってのは増える一方。
382 名前:nobodyさん mailto:sage [2009/11/07(土) 19:46:08 ID:???] freeしてもOSにメモリを返却するってわけじゃないんだよな。 プロセスのメモリサイズをいじるのはsbrkとかbrkだっけ?
383 名前:nobodyさん mailto:sage [2009/11/07(土) 20:08:11 ID:???] >>379 自分には関係ないけど なるほどーと思った
384 名前:nobodyさん mailto:sage [2009/11/07(土) 21:19:04 ID:???] >>379 宣言的に見えるけど、実のところnamed_scopeもただの メソッドだからな。
385 名前:nobodyさん mailto:sage [2009/11/08(日) 02:45:09 ID:???] qmailで受信して、.qmailのパイプ経由で script/runnerしてメール処理をしてるのだが、 一度受信したメールが何度も繰り返し送られてくる。 これって、こういうものなのかな? それとも的確な処理をしてないから?
386 名前:nobodyさん mailto:sage [2009/11/08(日) 02:58:14 ID:???] 受信したら消せよ
387 名前:nobodyさん mailto:sage [2009/11/08(日) 03:13:16 ID:???] うそん
388 名前:nobodyさん mailto:sage [2009/11/08(日) 03:16:34 ID:???] 外部から何度も送られてくるのよ。 受信したメールをコマンドで処理するのみで 保存しないようにしても症状は同じ。 受信したときに相手のサーバに的確なメッセージを 返してあげないとダメなのかな? そういうのはqmailが勝手にやってくれてると思うのだけど…
389 名前:nobodyさん mailto:sage [2009/11/08(日) 10:25:46 ID:???] >>388 > そういうのはqmailが勝手にやってくれてると思うのだけど… おいおい
390 名前:nobodyさん mailto:sage [2009/11/08(日) 11:28:57 ID:???] これがruby厨
391 名前:nobodyさん mailto:sage [2009/11/08(日) 14:55:17 ID:???] そんなくれくれruby厨に助言してくれよう。 終了コード0返すだけじゃだめなの?
392 名前:nobodyさん mailto:sage [2009/11/08(日) 16:35:04 ID:???] ActiveRecord::Migration.execute('CREATE TABLE hoge (・・・); CREATE INDEX ・・・;') とかしてもインデックス作られないんだけどCREATE TABLEだけしか実行してくれないの?
393 名前:nobodyさん mailto:sage [2009/11/08(日) 18:22:12 ID:???] そんな事はない。 インデックスも正しく作成される。 その前にマイグレーションを使っているのに、わざわざSQLを直接実行するのはなんでだ?
394 名前:nobodyさん mailto:sage [2009/11/09(月) 20:11:21 ID:???] Railsではidを渡すところに大概は、Hoge.find(id) した後のオブジェクトを渡しても 自動でidに変換してよしなに計らってくれますよね? 例えば、Hoge.find自身もintegerなidじゃない Hoge.firstの返り値などでも通ります。 これを自分の処理でも使いたいのですが、該当するメソッドはないものでしょうか? ActiveRecordのfindのソースとかたどって見ているのですが、 いまいちわからんとです・・・ 環境はRuby 1.8.7、Rails 2.3.4です。
395 名前:nobodyさん mailto:sage [2009/11/09(月) 21:43:53 ID:???] >>394 まずは active_record/base.rb の AR::Base#find から find_one / find_some などを経て def quote_value(value, column = nil) self.class.connection.quote(value, column) end これは、active_record/connection_adapters/abstract/quoting.rb の def quote(value, column = nil) # records are quoted as their primary key return value.quoted_id if value.respond_to?(:quoted_id) : かな。 で、AR::Base に戻って def quoted_id #:nodoc: quote_value(id, column_for_attribute(self.class.primary_key)) end
396 名前:nobodyさん mailto:sage [2009/11/09(月) 21:58:57 ID:???] んなもんソース見るまでもなくね?
397 名前:nobodyさん mailto:sage [2009/11/09(月) 23:09:34 ID:???] 見ないでどうやってしらべんの
398 名前:nobodyさん mailto:sage [2009/11/10(火) 04:32:44 ID:???] んなもん調べるまでもなくね
399 名前:nobodyさん mailto:sage [2009/11/10(火) 12:23:52 ID:???] 初心者スレか本スレに帰れ
400 名前:nobodyさん mailto:sage [2009/11/10(火) 15:45:57 ID:???] >>395 無事動作を確認できました! Item.quote_value(1234) => "1234" Item..quote_value(Item.first) => "1" みたいにいけますた。何故か文字列ですがw find_oneやfind_someになんであるのに、見つけられなかったんだろ、と ドキュメントを思ってよく見たら railsのchmファイルって、メソッドのソース表示は長い行だと折り返されないで、 画面外にでてって表示されないっぽいですね orz 他の場面でもソース見ててハマりそうだ・・・。 この辺てCSSとか直したらなんとかなるんかな。
401 名前:nobodyさん mailto:sage [2009/11/10(火) 16:15:53 ID:???] 「SQL文の条件句に埋め込む数値の表現」なので、 最終的に文字列が得られるようになってるのよ。
402 名前:nobodyさん mailto:sage [2009/11/10(火) 16:23:20 ID:???] >>401 ああ、確かにドキュメントに > Quote strings appropriately for SQL statements と書いてありますね。 quote_〜〜ってメソッドたくさんあるし、なんのことかと思ったら、 SQLのためのクォート処理なんですね。 勉強になりました。 privateメソッドですし、期待する機能と名前が一致しない点もアレなのですが、 とりあえずは実現できるので ActiveRecord::Base::quote_value を使ってみます。 帰り値の文字列はto_iすればいいですし。 ありがとうございました。
403 名前:nobodyさん mailto:sage [2009/11/10(火) 20:20:41 ID:???] 質問よいですか? URLに&hoge=true といったように、フラグや状態(日付とかでもいいです)を記載して、 しばらく、一定のページ遷移まで、&hoge=trueのGETパラメータを付加しつづけるよい方法はありませんでしょうか? クッキーがいいかと思ったのですが、状態の違うページをいくつか開いた際に破綻してしまいます。 今は、form_forなどの引数にパラーメータを一個一個渡しています。 手動なのでけっこうミスがでてしまいます。 以下のような感じです。 view側: <% form_tag({:action => :edit, :id => @item}.merge(hoge_params_hash)) do %> : <% end %> コントローラー側: helper_method hoge_params_hash private def hoge_params_hash params[:hoge] ? {:hoge=> params[:hoge]} : {} end 例として、ブログやCMSのプレビュー用のモードというか、プレビューボタンを押した後指定のページ遷移までは フラグ立てたまま処理する(「プレビュー中です」のような表示をしたい)というような場合や 食べた食品を記録するサイトで、ある日に記録するデータを検索窓から検索した場合、 その検索後のページ場合もそのある日を覚えておいて、記録時に使いたいといった場合です。 設計の問題なのかもしれませんが、ぜひご助言ください。
404 名前:nobodyさん mailto:sage [2009/11/10(火) 22:01:55 ID:???] formならhiddenでいいんじゃね?
405 名前:nobodyさん mailto:sage [2009/11/10(火) 22:09:57 ID:???] セッションに保存するのが駄目な理由が分からん。 application_controllerにチェックするメソッド定義して、各コントローラでfilterで呼ぶとか。 filterを工夫すればいいんじゃないの?
406 名前:nobodyさん mailto:sage [2009/11/10(火) 22:11:23 ID:???] >>403 例えば、link_toの場合は、こんな感じで書くとGETパラメータを付加してくれる。 formでも同じ事ができるかは分からないが。 <%= link_to("編集", :action => :edit, :id => @item, :params => params) %>
407 名前:403 mailto:sage [2009/11/11(水) 09:59:21 ID:???] >>405 そういうことが聞きたいのです。 セッションだと、 >>403 の下のブログやCMSの例でいえば、プレビューと実際の画面表示のコードを共有していた場合、 プレビュー中に、実際の画面みようとしてもプレビュー表示になってしまいますよね。 食品の記録サイトでいえば、別のタブで同時に別の日を入力しようとしていた場合、 セッションにある値しかつかわれないので、セッションにある日しか同時に入力できないことになります つまり、セッションだと状態を1つしかもてない、という意味なのですが・・・ ま、仕様です、と言えば、それでもいいのかもしれませんがw >>406 あ、いえ、今もそんな感じでやってるんです。 >>403 のコード例がわかりにくいのですが、 form_tag でGETパラメータを指定しています。 ただし、指定するかは今のページのGETパラーメータを見てから。 >>404 確かにformならhiddenでもいいですね。GETパラメータでやらなくてもいいか
408 名前:nobodyさん [2009/11/12(木) 03:49:23 ID:K53v7ACD] ファイルをアップロードするときってform_tagとかfile_fieldを つかってファイルを選ぶ方法しかないのでしょうか? クライアントがパスを書いてそこにあるファイルをサーバに保存する ことは不可能ですか?
409 名前:nobodyさん mailto:sage [2009/11/12(木) 04:51:31 ID:???] 可能
410 名前:nobodyさん mailto:sage [2009/11/12(木) 15:35:06 ID:???] /etc/passwdとか上書き出来たら楽しいね。
411 名前:nobodyさん mailto:sage [2009/11/12(木) 15:36:59 ID:???] 当たり前のような質問があります。 HogeControllerがあり、publicなメソッドとしてFoobarを新たに追加しました。 デフォルトのルーティングだと、 /hoge/foobar でアクセスできるのですが、プログラム上からは foobar_hoge_path() が使えません。 rake routesしても載ってないのですが、 これって、routes.rbに map.resources :hoge, :member => { :foobar => :get } などとかかなくてはいけないものなのでしょうか?
412 名前:nobodyさん mailto:sage [2009/11/12(木) 22:47:21 ID:???] find_by_sqlで複数のSQLを実行したとき 返ってきた結果セットがほぼ同時に別プロセスで 実行していた別なSQLのものに変わってしまっています。 mysqlの設定などでチェックすべきところとかないでしょうか?
413 名前:nobodyさん mailto:sage [2009/11/12(木) 23:21:24 ID:???] >>411 無指定の map.resources だけだとそこまで面倒みてくれない。 map.resources に追加するか、昔ながらのやり方で map.foobar_hoge 'hoge/foobar', :controller => 'hoge', :action => 'foobar' のように定義してやるとか。
414 名前:nobodyさん mailto:sage [2009/11/12(木) 23:37:15 ID:???] トランザクションとかストアドプロシージャだろうか やったことないけど
415 名前:411 mailto:sage [2009/11/14(土) 04:27:35 ID:???] >>413 ありがとうございます。 こちらでも試してみましたが、やはり、必要なのですね。 >>411 のは間違ってまして、/hoge/foobarの場合は、 map.resources :hoge, :collection => { :foobar => :get } でした。 /hoge/1/foobarなら、>>411 のでいいみたいです。
416 名前:nobodyさん mailto:sage [2009/11/17(火) 14:03:16 ID:???] ちょっと聞いていいでしょうか? psousa's baseapp-orange at master - GitHub github.com/psousa/baseapp-orange 以前でてたBaseAppというRailsのテンプレみたいなのの派生verがあるのを発見して 動かしてみようと思ったんですが、うまく行きません。 READMEにあるように、mysql用のdb設定をdatabase.ymlにして、 rake db:migrate したのですが、 Missing these required gems: capistrano-ext と言われてしまいます。 vendor以下を見るとfreezeされているのか、必要なgemなど全部入っているようなのですが、このように言われます。 config/enviroment.rb には、 config.gem "capistrano-ext", :lib => "capistrano" のような記述があり、 rake gems:install とするのですが、何ごともなく終了します。 どうしたものでしょうか?
417 名前:416 mailto:sage [2009/11/17(火) 14:16:18 ID:???] >>416 ですが、 ないならgemいれればいいんじゃね?という当たり前の結論で、 gem install capistrano-ext したら、無事に通りました。(db:migrateでDBないと言われたので、rake db:createしましたら行けました) しかし、何でこんな動作になっているのだろう? なるべくシステムに入っているgemを使いたいのですが、満載のvendor/gems以下や、vendor/rails以下は 手動で削除しちゃっていいものなのでしょうか?
418 名前:nobodyさん mailto:sage [2009/11/17(火) 16:12:30 ID:???] rails 2対応の初心者用参考書でお勧めはどれですか?
419 名前:nobodyさん mailto:sage [2009/11/17(火) 16:13:42 ID:???] 既存のapache管理下のものに影響与えないように導入することはできないのでしょうか
420 名前:nobodyさん mailto:sage [2009/11/17(火) 18:37:57 ID:???] >>418 >>350 がいいんじゃないかと思う
421 名前:nobodyさん mailto:sage [2009/11/17(火) 22:36:49 ID:???] >>419 影響ってどういう意味?
422 名前:nobodyさん mailto:sage [2009/11/18(水) 02:13:20 ID:???] restful_authenticationを使ってログイン認証を行おうと思ってるんですが、 画面の遷移がない場合5分経ったらセッションを消してログアウト状態にしたいと思っています。 以前はacts_as_authenticatedを使って、ログインされたらデータベースのsessionテーブルにユーザーの session情報を保存しておいて、ユーザーが画面遷移をしたら、そのsession情報を更新しておき 5分おきにsessionテーブルを監視して、更新時間が5分以上経ってたらsessionテーブルから削除するようにして ログアウト状態を再現していました。 restful_authenticationを使う場合は、データベースに値を持たなくても上記のような事ができるのでしょうか? すみませんが、お知恵をお貸しください。宜しくお願いします。
423 名前:nobodyさん [2009/11/18(水) 17:36:25 ID:8qlvL/3i] 都道府県のデータをRubyの配列で用意しようと思うんだけど、 どこのファイルにおくのがおすすめでしょうか。 JP_STATES = [ '北海道', '青森’, ... ] こんな感じのデータです。
424 名前:nobodyさん mailto:sage [2009/11/18(水) 18:51:10 ID:???] Railsアプリのルートディレクトリを表す変数とかありませんか?
425 名前:nobodyさん mailto:sage [2009/11/18(水) 22:12:48 ID:???] >>422 restful_authentication自身にはそういった機能はなかったはず。 データベース側をきっちり削除したいなら自前で実装するのがいいだろうね。 クッキーのexpireでいいなら、2.3以降ならActionController::Base.sessionの:expire_afterを指定、 それ以前ならdynamic_session_expプラグインを使えばいい。 >>423 2.0以降なら config/initializers以下に。 それ以前ならconfig/environment.rbやconfig/environment/*.rbに直書きするか config/以下にファイルを置いてenvironment.rbなどからrequire。 >>424 RAILS_ROOT
426 名前:nobodyさん mailto:sage [2009/11/18(水) 22:14:23 ID:???] いまは Rails.root でもOK
427 名前:nobodyさん mailto:sage [2009/11/19(木) 00:14:02 ID:???] Wikiみたいなアプリで、文字列をHTMLに変換する処理をParserとしてモデルに切り分けたいのですが url_forとかhoge_urlとかはモデルから使えないので、リンク生成をどうしたものかと思っています。 config/routes.rbの設定と重複しないために、できればURL生成メソッドで作りたいのですが どうにかできないでしょうか?
428 名前:nobodyさん mailto:sage [2009/11/19(木) 15:24:41 ID:???] >>427 モデルじゃなくて(モデルでもいいけど)、 ふつうのライブラリみたいに lib/以下にParserとしておいて、 コンストラクタでコントローラーのインスタンスを渡す、とかどうだろか lib/以下に置く時の注意は、moduleにしてRailsが想定する名前の付けか足しておくと、 requireとかしなくても、自動で読んでくれる。はず。 詳しい方きぼん
429 名前:nobodyさん mailto:sage [2009/11/19(木) 15:32:45 ID:???] ついでに質問なのですが、FormBuilderやFormHelperを継承せずに拡張したいのですが、うまいやり方ないでしょうか? 今は、 lib/hoge_form_helper.rb として、 module HogeFormHelper module FormBuilder def my_text_area(method, options = {}) : end end end 上記のように書いて、application_helper.rbにて、 class ActionView::Helpers::FormBuilder include HogeFormHelper::FormBuilder end のようにして、組み込んでいます。 FormBuilderを書いたら、FormHelperも追加したくなるのが人情というものですが、その場合、 HogeFormHelper::FormHelper を書いて、application_helper.rbに、 class ActionView::Helpers::FormBuilder include HogeFormHelper::FormBuilder include HogeFormHelper::FormHelper end のようにさらにするのが不恰好に見えます。 これらの処理をlib/hoge_form_helper.rb側におけないものでしょうか?
430 名前:nobodyさん mailto:sage [2009/11/19(木) 20:01:14 ID:???] rspecでhave_textとかinclude_textが動かなくて困っています。 現象: get "some_action_name" response.should include_text("foo") とすると expected "foo", got "1" と表示され、失敗します。 response.should render_template(...) は成功しています。 調べたこと: 自分で調べたところ、p response.body をすると "1" が出力されました。 これはテンプレートがレンダリングされてないのだと思い、テンプレートの中で $stderr.puts "**** rendered *****" みたいに入れると、出力されませんでした。 推測: どうもgetを呼び出しただけだとテンプレートがレンダリングされない? rspecのチュートリアルだと ttp://rspec.info/rails/writing/controllers.html get 'some_action' response.should have_text("expected text") とあるので、getだけでいいと思うんですけど、ほかに何か必要でしょうか。
431 名前:nobodyさん mailto:sage [2009/11/19(木) 21:37:22 ID:???] >>429 プラグイン化するとか。 結局はincludeするんだけど、vendor/plugins に丸ごと置くだけでよくはなる。
432 名前:nobodyさん mailto:sage [2009/11/20(金) 16:48:45 ID:???] Railsで、text2html みたいなヘルパーってありませんでしたっけ? 「rails text2html」でぐぐっても、それらしいのは見つからず。
433 名前:nobodyさん mailto:sage [2009/11/20(金) 17:56:43 ID:???] RoRをWindows上で稼動させていてアップローダーを作ったところ 日本語のファイルがUTF-8で生成されてWindows上で文字化けします ファイルを保存するときにSJISに変換しないといけないのでしょうか? NTFS自体はUNICODE対応のはずだし なにかが間違ってるような気がするんです
434 名前:nobodyさん mailto:sage [2009/11/20(金) 18:02:42 ID:???] >432 textile とか markdown のこと? >433 お前が間違ってる
435 名前:nobodyさん mailto:sage [2009/11/20(金) 18:55:59 ID:???] form_remote_tagとselect_tagを使ってAjaxで選択リストの値を送りたいのですが、値を受け取るにはコントローラでどのようなコードを書けばよいのでしょうか?