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/
12 名前:nobodyさん mailto:sage [2009/09/14(月) 00:54:13 ID:???] 名前付きルートにモデルインスタンスを渡すソースをよく見ます。 @entry = Entry.new(params[:entry]) redirect_to entry_url(@entry) みたいな感じです。 ネットなどで調べると、名前付きルートentry_urlの引数はidしか渡せないようなのですが、 モデルインスタンスが渡された場合はインスタンスからidを取り出すなどの特別扱いをされるのでしょうか?
13 名前:5 mailto:sage [2009/09/14(月) 02:08:24 ID:???] >>8-9 わかりました。
14 名前:nobodyさん mailto:sage [2009/09/14(月) 05:36:47 ID:???] >>12 > ネットなどで調べると、名前付きルートentry_urlの引数はidしか渡せない ハッシュも渡せるYO!! entry_url(:id => 10) こういう、引数の色んな渡し方が可能なメソッドは大抵 is_a? とか respond_to? を使って実行時型チェックをやってるので、 その一環としてモデルオブジェクトからは id を取得するようになっているのだろう。 ソース追っかけたわけではないので推測だけど、、、
15 名前:nobodyさん mailto:sage [2009/09/14(月) 09:54:44 ID:???] >>7 このやり方ってどうするんですか?
16 名前:nobodyさん mailto:sage [2009/09/14(月) 10:30:34 ID:???] >>12 url_forのドキュメントとソースが参考になるのではないかと
17 名前:nobodyさん mailto:sage [2009/09/14(月) 10:39:09 ID:???] >>15 rdoc --inline-source(-S)
18 名前:nobodyさん mailto:sage [2009/09/14(月) 10:44:29 ID:???] >>15 >>1 にあるRailsの公式APIリファレンスや github でホスティングされている gem の rdoc なんかはそうなっているから、そっちを参照したら? ローカルのgemや自作ライブラリのドキュメントを生成するなら ひとまず rdoc の使い方を覚え、gem server などでググる必要があると思われる。 でも自分はあんまりローカルgemのrdocは見ないなあ、大抵guthubの方を見る
19 名前:nobodyさん mailto:sage [2009/09/14(月) 18:24:50 ID:???] railsだとrake doc:railsってコマンドでもドキュメント作れるけど、このコマンドはみんな使ってないの?
20 名前:nobodyさん mailto:sage [2009/09/14(月) 19:19:32 ID:???] どんなコマンドがあるのかわからん コマンド一覧表作ってくれんかな
21 名前:nobodyさん mailto:sage [2009/09/14(月) 20:11:48 ID:???] >>20 rake --tasks
22 名前:nobodyさん mailto:sage [2009/09/14(月) 20:16:10 ID:???] zsh だと rake <Tab> でコメント付きのタスク一覧を補完候補として表示してくれたりする
23 名前:nobodyさん mailto:sage [2009/09/14(月) 20:43:56 ID:???] DBの設計の質問なのですがrailsが絡むのでここで質問させてください。 webシステムでユーザーのテーブルを作りたいのですが、memberテーブル(一般ユーザー)とadminテーブル(管理者ユーザー)に分けて作ろうと思っています。 ただし名前やパスワードなど共通するカラムはuserテーブルに切り出します。 この時、userテーブルとmember&adminテーブルの関連はどのように作るべきでしょうか? 以下のように@とAの二つ考えてみたのですが、どっちが良いのか分かりません。 @memberテーブルとadminテーブルそれぞれにuser_idカラムを作り、memberとadminからuserを参照する。 Auserテーブルにuser_id(memberテーブルのidまたはadminテーブルのidを格納する)とuser_type("member"または"admin"を格納する)を作り、userからmemberとadminを参照する。 3つのテーブルの関係を考えるとuserがmemberとadminの親になるのが自然なので@の方が良いのかなと思うのですが、 Aの方法だと、railsのポリモーフィック関連で3つのテーブルの関連付けができるため便利です。(@だとuserとmember、userとadminを別々に関連付けするのでmemberとadminに関連性が無くなる) どっちのやり方が適切でしょうか?
24 名前:nobodyさん mailto:sage [2009/09/14(月) 21:23:58 ID:???] >>23 個人的には polymorphic associationが好み。 あまり美しくないが、一応選択肢として: Rails的にはSTI(Single Table Inheritance)がお手軽。
25 名前:nobodyさん mailto:sage [2009/09/14(月) 22:06:40 ID:???] 3つ目の案として、UserとRoleの2つのモデルで一般ユーザ、管理者を表現するのはどうかな。 rolesテーブルには一般ユーザと管理者のレコードを入れて権限マスタとして使う。 で、usersテーブルにrole_idを持たせる。
26 名前:25 mailto:sage [2009/09/14(月) 22:08:23 ID:???] あ、失礼。 >>23 のAと同じだった。
27 名前:23 mailto:sage [2009/09/14(月) 22:13:49 ID:???] >>24 やはりrailsの場合polymorphicが良いのですね。 Single Table Inheritanceは知りませんでした。少し調べてみたら@でやる場合はすごく便利そう…validationもuserモデルに書くだけで良くなるからむしろAより綺麗かも? polymorphicかSTIかでもうちょっと考えてみます。 ありがとうございました。
28 名前:23 mailto:sage [2009/09/14(月) 22:16:12 ID:???] >>25 ありがとうございます。 Aとは違うような…3つテーブルを作らないということですよね?
29 名前:nobodyさん mailto:sage [2009/09/14(月) 22:18:10 ID:???] Railsとか関係なしにAは駄目だろ memberとadminを区別しないで扱いたい時とか破綻する
30 名前:23 mailto:sage [2009/09/14(月) 22:26:53 ID:???] 破綻しますか?Aの場合でもuserからmemberとadminを辿れるから問題無いと思うけど。
31 名前:nobodyさん [2009/09/14(月) 22:44:58 ID:0t6wUMUL] コントローラをあえてRESTfulにしたくない場合(フォーム→確認画面→完了画面、のようなものを考えています)、どのようにしたらよいでしょう? config/routes.rb から該当コントローラの map.resources 行を削ると、以下のエラーになってしまいます。 Showing app/views/hoges/fuga.html.erb where line #3 raised: undefined method `hoges_path' for #<ActionView::Base:0xb755f00c> Extracted source (around line #3): <% form_for(@hoge) do |f| %> なお該当ビューで hoges_path メソッドを使用している箇所はありません。
32 名前:nobodyさん mailto:sage [2009/09/14(月) 23:03:43 ID:???] >>31 form_forでエラーになっているのであれば、form_tag使えばいいんじゃない? <% form_tag(:action => アクション名) do %> <%= text_field(:hoge, :name) %> 以下略 <% end %>
33 名前:nobodyさん mailto:sage [2009/09/15(火) 00:21:30 ID:???] >>23 わざわざ二つに分ける意味がわからん なぜ二つに分けようと考えたんだ?
34 名前:nobodyさん mailto:sage [2009/09/15(火) 00:22:25 ID:???] メンバーから管理者に変更するときとか面倒そうだな
35 名前:nobodyさん mailto:sage [2009/09/15(火) 00:24:43 ID:???] userテーブルは要らないな。memberテーブルとadminテーブルだけあれば済むこと。
36 名前:23 mailto:sage [2009/09/15(火) 02:04:52 ID:???] 何度もすいません。 memberテーブルとadminテーブルに分けたのは、一般ユーザーと管理者ユーザーで必要なカラムが違うからです。 userテーブルを作ったのは、ログイン認証の時に一つのテーブルを見るだけで済むようにするためです。 restful_authenticationなどのプラグインなどを使う場合ユーザー認証のテーブルが二つあるとやっかいだと思いました。 >>34 さんが言うように変更が面倒くさそうなので、userテーブルだけ作ってmember固有のカラムもadmin固有のカラムもuserに突っ込むことも考えましたが、 そうしてしまうと今度はmemberとadmin以外の種類のuserが必要になった時に大変だと思いました。 自分なりに考えた結果、userとmemberとadminの3つのテーブルを用意するのがいいと判断しましたが、一般的なwebシステムではこういう分け方はあまりやらないのでしょうか。
37 名前:nobodyさん [2009/09/15(火) 03:06:36 ID:AVq3Mqvr] この流れの中、恥を忍んで聞くのですが、個人で作ってるシステムで、 「管理者=自分」と「その他ユーザー」という区別しかない場合、 特定のID(例えば 1)を持つユーザーが管理者、とハードコードしてしまうのって どうなんですかね? role を導入しようかと思ったんですが、 管理者か否かの二値を区別するのに roleテーブルも大げさかなと
38 名前:nobodyさん mailto:sage [2009/09/15(火) 03:43:36 ID:???] accessor isadmin
39 名前:nobodyさん [2009/09/15(火) 09:01:10 ID:Gt2owe1a] >>37 role導入でいいと思う。今は2つの値しか扱わないとしても、ハードコーディングするより全然いい。
40 名前:37 mailto:sage [2009/09/15(火) 12:30:53 ID:???] >>39 ありがとうございます。 今後のことも考えて role を導入してみます。
41 名前:nobodyさん mailto:sage [2009/09/15(火) 18:06:59 ID:???] roleってなんだ???
42 名前:nobodyさん mailto:sage [2009/09/15(火) 18:44:33 ID:???] 堂島role
43 名前:nobodyさん mailto:sage [2009/09/15(火) 18:57:55 ID:???] 質問があります。 バリデーションエラー時に、エラー箇所を赤く表示したいのですが、微妙に変な挙動になります。 <div class="fieldWithErros">が挿入されるため、場合によって画面が崩れてしまいます。 そのため下記サイトのように、<span ...>に置き換えるようにしたのですが、 そうすると、textareaのような要素が何故か、背景が赤くならずに下だけが赤くなります。 多分、<span>がinlineで<textarea>がblockなせいだとは思うのですが・・・ うまく解決する方法はないでしょうか? ちなみに、下記サイトのcssを追加した場合は、赤い背景のほかに赤い枠がとびでて不恰好になってしまいます・・・。 .fieldWithErrosがtextareaだけ変な件, ファイルアップロードのvalidates, option_groups_from_collection_for_select 使ったらfieldWithErrorsが出なくな.. - capsctrldays(2006-04-14) capsctrl.que.jp/kdmsnr/diary/20060414.html
44 名前:nobodyさん [2009/09/15(火) 20:23:27 ID:Gt2owe1a] >>43 divのままでも div.fieldWithErrors { display: inline; } こうすれば崩れなくなると思う。
45 名前:nobodyさん mailto:sage [2009/09/15(火) 20:28:15 ID:???] capistranoの質問があります。 先日より、本番鯖でcapistranoでのデプロイがエラーはくようになり困っております。 どのような原因が考えられますでしょうか? テスト鯖へのデプロイはほぼ同じ設定で問題なくできています。 環境: デプロイ先(テスト鯖staging、本番鯖production) ・Ubuntu 8.04 LTS ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux] デプロイ元: Windows XP SP3 Ruby 1.8.7 ・ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-mswin32] ・Capistrano v2.5.5 以下、エラー内容 > cap production deploy:cold * executing `production' triggering start callbacks for `deploy:cold' * executing `multistage:ensure' * executing `deploy:cold' * executing `deploy:update' triggering before callbacks for `deploy:update' * executing `gems:install' * executing "cd /home/www/my_project/current && rake gems:install RAILS_ENV=production" servers: ["my.example.com"] [my.example.com] executing command ** [out :: my.example.com] (in /home/www/my_project/releases/20090730101805) command finished ** transaction: start * executing `deploy:update_code' executing locally: "svn info svn+ssh://my_repogitory/my_project/trunk -rHEAD" * getting (via checkout) revision 102 to C:/DOCUME~1/ore/LOCALS~1/Temp/20090915103237 executing locally: svn checkout -q -r102 svn+ssh://my_repogitory/my_project/trunk C:\DOCUME~1\ore\LOCALS~1\Temp\20090915103237 compressing C:/DOCUME~1/ore/LOCALS~1/Temp/20090915103237 to C:/DOCUME~1/or/LOCALS~1/Temp/20090915103237.tar.gz
46 名前:nobodyさん mailto:sage [2009/09/15(火) 20:31:02 ID:???] executing locally: tar czf 20090915103237.tar.gz 20090915103237 servers: ["my.example.com"] ** sftp upload C:/DOCUME~1/ore/LOCALS~1/Temp/20090915103237.tar.gz -> /tmp/20090915103237.tar.gz *** [deploy:update_code] rolling back * executing "rm -rf /home/www/my_project/releases/20090915103237; true" servers: ["my.example.com"] ** [deploy:update_code] exception while rolling back: IOError, closed stream D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:156:in `[]=': undefined method `[]=' for nil:NilClass (NoMethodError) from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:207:in `handle_error' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:48:in `process!' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:43:in `loop' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:43:in `process!' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:11:in `process' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/actions/file_transfer.rb:40:in `transfer' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/connections.rb:170:in `execute_on_servers' from D:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `each_slice' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/connections.rb:158:in `each' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/connections.rb:158:in `each_slice' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/connections.rb:158:in `execute_on_servers'
47 名前:nobodyさん mailto:sage [2009/09/15(火) 20:34:49 ID:???] 長すぎて容量制限にひっかかる(泣 from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/actions/file_transfer.rb:38:in `transfer' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/actions/file_transfer.rb:26:in `upload' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy/strategy/base.rb:43:in `send' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy/strategy/base.rb:43:in `method_missing' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy/strategy/copy.rb:99:in `deploy!' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy.rb:204:in `load' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `instance_eval' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `invoke_task_directly_without_callbacks' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/callbacks.rb:27:in `invoke_task_directly' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:81:in `execute_task' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `send' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `method_missing' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:104:in `update_code' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy.rb:185:in `load' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:48:in `transaction'
48 名前:nobodyさん mailto:sage [2009/09/15(火) 20:36:51 ID:???] from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `send' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `method_missing' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy.rb:184:in `load' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `instance_eval' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `invoke_task_directly_withou t_callbacks' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/callbacks.rb:27:in `invoke_task_directly' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:81:in `execute_task' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `send' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `method_missing' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:104:in `update' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy.rb:464:in `load' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `instance_eval' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `invoke_task_directly_without_callbacks' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/callbacks.rb:27:in `invoke_task_directly'
49 名前:nobodyさん mailto:sage [2009/09/15(火) 20:37:35 ID:???] from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:81:in `execute_task' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:93:in `find_and_execute_task' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/execute.rb:45:in `execute_requested_actions_without_help' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/execute.rb:44:in `each' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/execute.rb:44:in `execute_requested_actions_without_help' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/help.rb:19:in `execute_requested_actions' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/execute.rb:33:in `execute!' from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/execute.rb:14:in `execute' from D:/ruby/(略)/capistrano-2.5.5/bin/cap:4 from D:/ruby/bin/cap:19:in `load' from D:/ruby/bin/cap:19 これでエラーメッセージ終わりです。 ご助言いただけると幸いです。
50 名前:nobodyさん mailto:sage [2009/09/15(火) 20:41:44 ID:???] >>44 やってみたのですが、<span>のときと同じように、 背景がうまく赤くならずに、textareaのときは下の方だけが赤くなったりしてしまいます・・・。
51 名前:nobodyさん [2009/09/15(火) 20:50:52 ID:Gt2owe1a] >>50 とりあえず、デザインの崩れは解決したんだよね? あとはcssを調整すればなんとかなるはず。 .fieldWithErrors textarea { background: #ff0000; } で、いけないかな?
52 名前:nobodyさん mailto:sage [2009/09/15(火) 21:03:14 ID:???] >>46 SFTPTransferWrapperの中でコケてるようだけど、うーん…… 公開鍵の有無とかパスワード認証の許可状況とか?
53 名前:nobodyさん mailto:sage [2009/09/15(火) 21:28:04 ID:???] 突然ならディレクトリの容量が足りないんじゃなくて?
54 名前:45 mailto:sage [2009/09/16(水) 11:14:19 ID:???] ありがとうございます。 書き忘れましたが、本番鯖の設定とテスト鯖の設定の切り替えにcapistrano-extというgemを使っています。 >>52 こちらでもソースを見ていたのですが、やっぱり、SFTPがおかしいのですかね…。 サーバー側のsshd設定何か弄ったかな…うーん。 本番サーバーにwinscpのSFTPで同じユーザーで適当な10MBくらいのファイルを何度か転送してみましたが、 問題ない感じでした。 capistrano側の設定なのかな… ほぼ同じcapistranoの設定(ドメインとssh接続portのみ異なる)でテスト環境では問題ない点が?です。 sshは公開鍵を使っていますので、鍵の設定も見直してみます。pageantを併用していたはず >>53 昨日、サーバーでdfで確認してみましたが、転送先のディレクトリ(/home/www/my_project)含むパーティション、 及びアーカイブ一時展開先の /tmpともに問題なく空いていました。 しかし、念のためもう一度確認してみます。
55 名前:nobodyさん mailto:sage [2009/09/16(水) 11:33:18 ID:???] >>54 まさかとは思うが、root でログインしようとかしてないよね? PermitRootLogin no で弾かれてるとか
56 名前:nobodyさん mailto:sage [2009/09/16(水) 18:38:05 ID:???] Railsでmigration使わない開発ってアリでしょうか? 使い慣れたDB設計ツールからSQL吐きたいってのは邪道ですか?
57 名前:45 mailto:sage [2009/09/16(水) 19:23:55 ID:???] >>52 公開鍵の設定はpageantを使ってあり、capistranoで使用しているNet:sshはwindows環境では pageantを使ってくれるみたいです。 >>53 確認したところ、ディスク残り容量は問題ありませんでした。 >>55 下記のようにdeploy.rbで設定してあり、rootではログインしていません。sshはrootログインは弾いています。 set :use_sudo, false set :user, "www-data" なお、上記ユーザーでsshクライアント(Poderosa3)でのログインを及び、 winscpでのsftp転送が可能なことは確認しています。
58 名前:45 mailto:sage [2009/09/16(水) 19:35:00 ID:???] 解決しました(`・ω・´) sshdの設定がテスト環境と違っていたので、修正してみたところ無事デプロイが通るようになりました。 /etc/ssh/sshd_config にて、 ClientAliveInterval 15 ClientAliveCountMax 3 ↓ ClientAliveInterval 60 のように修正しsshdを再起動したところ、うまく行くようになりました。 他のsshクライアントでうまく行くから他の原因かと思ってました。 みなさまのおかげさまです。ありがとうございました。
59 名前:nobodyさん mailto:sage [2009/09/16(水) 20:28:55 ID:???] >>56 ふつうにアリだよ。
60 名前:nobodyさん mailto:sage [2009/09/16(水) 21:34:48 ID:???] 普通にナシだろう。逆に手間かかるのがオチ
61 名前:nobodyさん mailto:sage [2009/09/16(水) 21:40:58 ID:???] >>60 既存DBを使うようなものは作ったことがないんですね。
62 名前:nobodyさん [2009/09/16(水) 23:03:54 ID:hMTblvM+] 今回初めてCapistranoを使いRailsアプリケーションのデプロイ作業に取り組んでいるのですが、 cap deploy コマンドを入力し、パスワードを入力した後の処理がエラーになって先に進みません。 ネットで調べたのですがどうも原因が分からず、3日ほどハマっています。 もしよければ、以下のエラーの内容から解決方法のアドバイスを頂けないでしょうか。 クライアントマシンはWindowsVista、リポジトリはBuffaloのLinkStationにあり、サーバはFedora 10です。 C:\InstantRails\rails_apps\demo>cap deploy * excuting `deploy' * excuting `deploy:update' ** transaction: start * excuting `deploy:update_code' excuting locally: "svn info file:///L:/demo/branches/stable -rHEAD" *** excutable `svn' not present or not in $PATH on the local system! * excuting "svn export -q -r3 file:///L:/demo/branches/stable /home/tyn/www/demo/releases/20090916124357 && (echo 3 > /home/tyn/www/demo/releases/20090916124357/REVISION)" servers: ["tyn-market.com"] Password: [tyn-market.com] excuting command ** [tyn-market.com :: err] svn: URL 文字化けしている ra_local 文字化けしている ** [tyn-market.com :: err] svn: 文字化けしている 'file:///L:/demo/branches/stable' 文字化けしている command finished *** [deploy:update_code] rolling back * excuting "rm -rf /home/tyn/www/demo/releases/20090916124357; true" servers: ["tyn-market.com"] [tyn-market.com] executing command command finished failed: "sh -c 'svn export -q -r3 file:///L:/demo/branches/stable /home/tyn/www/demo/releases/20090916124357 && (echo 3 > /home/tyn/www/demo/releases/20090916124357/REVISION)'" on tyn-market.com エラーメッセージの中に文字化けしている個所がいくつかあります。
63 名前:nobodyさん [2009/09/16(水) 23:05:46 ID:hMTblvM+] エラーメッセージは以上です。 よろしくお願い致します。
64 名前:nobodyさん mailto:sage [2009/09/16(水) 23:35:15 ID:???] >>60 幸せな環境で仕事してるんだろうなぁ。羨まし
65 名前:nobodyさん mailto:sage [2009/09/16(水) 23:59:26 ID:???] >>62 excutable `svn' not present or not in $PATH on the local system! ってことじゃんか? ローカルとリモートでsvnが使える?
66 名前:nobodyさん mailto:sage [2009/09/17(木) 00:06:00 ID:???] >>62 > ** [tyn-market.com :: err] svn: URL 文字化けしている ra_local 文字化けしている > ** [tyn-market.com :: err] svn: 文字化けしている 'file:///L:/demo/branches/stable' 文字化けしている これ、ディプロイ先でチェックアウトしようとしたときにsvnが受け取っている リポジトリパスなんだが、たぶんローカルでチェックアウトするときのをそのまま 使ってるよね?
67 名前:nobodyさん [2009/09/17(木) 10:14:22 ID:AsBV+oBz] vim-railsで変数の定義部にジャンプする機能ってないですかねぇ?? 統合開発環境であるような。 そもそもvimではそういうのって無理なのかしらん。 エディタの話になってしまって申し訳ないですが・・詳しい方いたら教えていただけると幸いです。
68 名前:nobodyさん mailto:sage [2009/09/17(木) 10:28:36 ID:???] >>62 サーバー側でsvnからチェックアウトしようとして失敗しているのかな? もし、サーバーからアクセスできないsvnリポジトリを使っているなら(例えば、ローカルにあるとか)、 set :deploy_via, :copy を指定すれば、 ローカルでsvnからチェックアウト→tar.gzで固めて→sftpでデプロイ先に転送→デプロイ先に解凍 してくれる。 以下は記述例: set :repository, "svn+ssh://my_svn/my_project/trunk" #(例) ローカルからアクセス可能なリポジトリURL set :deploy_to, "/home/www/#{application}" #(例)デプロイ先のディレクトリ set :deploy_via, :copy
69 名前:nobodyさん mailto:sage [2009/09/17(木) 11:19:40 ID:???] railsで80000pv/日のサイト運営したいんですけど月何万ほどかかりますか?
70 名前:nobodyさん mailto:sage [2009/09/17(木) 11:58:28 ID:???] PHP の 3 倍くらいかな
71 名前:nobodyさん mailto:sage [2009/09/17(木) 12:27:35 ID:???] 80000pv/日のコンテンツ(ネタ)を持っているだけでうらやましい エロサイトかなにか?(悪く行っているのではありません) 技術を身につけても、プライベートではサイトを開くネタがないよ。 (本業が SE なので、仕事では顧客から請け負った業務イントラを Rails で作っているけど)
72 名前:nobodyさん mailto:sage [2009/09/17(木) 15:16:06 ID:???] >>67 タグで飛べばいいじゃないの?
73 名前:nobodyさん [2009/09/17(木) 15:19:26 ID:WSgiLhix] >>65 , 66, 68 回答有り難うございます。Railsデプロイ読みながらやっているのですが、バージョン管理システムを使うのも初めてなものでして。。 "リモート"がリポジトリのあるLinkStationで、"ローカル"が開発作業をしているWindowsマシンで、"サーバ側"がデプロイ先のLinuxマシンという理解で良いでしょうか? ご指摘の通りサーバ側からLinkStationにアクセスできる設定にはしておらず、ローカルでチェックアウトするときのパスがそのまま使えると思っていました。 ローカルのSubversionを使ってデプロイ先のサーバにアクセスしていると勘違いしていました。 サーバ側のSubversionは何か設定やリポジトリの作成??が必要なのでしょうか。手元にある書籍では殆ど触れられておらず、今ひとつ全体像がつかめずにいます。 何かあれば助言頂けないでしょうか。よろしくお願いします。 set :deploy_via, :copy も試してみようと思います。
74 名前:nobodyさん mailto:sage [2009/09/17(木) 17:54:24 ID:???] サーバ側でsmbclientなどを使ってLinkStationのファイルを共有する設定にしても よさそうね。
75 名前:nobodyさん mailto:sage [2009/09/17(木) 18:59:24 ID:???] Rails3.0っていつ出るんだい?
76 名前:nobodyさん mailto:sage [2009/09/17(木) 19:40:34 ID:???] 年内にはβに到達しないと予測。
77 名前:nobodyさん mailto:sage [2009/09/17(木) 19:57:25 ID:???] >>73 Fedoraの方にログインして ssh でも http でも samba でもなんでもいいからやりやすいので LinkStation にアクセスできるようにして $ svn ls リポジトリ が通ればOK set :deploy_via, :copy はサーバ側を弄らせてもらえない場合の最終手段かな
78 名前:nobodyさん [2009/09/18(金) 12:52:28 ID:ITCAk7dP] これからrailsやろうと思ってる者です。 そして、インストールの時点でコケてしまいました。 $gem install rails ERROR: While executing gem ... (Zlib::BufError) buffer error なので、gemをアップデートしました。 $gem update --system $gem update windows再起動 $rails install rails ERROR: While executing gem ... (Zlib::BufError) buffer error ・・・。 この場合、どうすればインストール出来ますか? ぶしつけですみませんが、教えて!エロい人!
79 名前:nobodyさん [2009/09/18(金) 12:56:06 ID:ITCAk7dP] >>78 です。 情報が足りてませんでした。 Windows XP SP3 ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] gem 1.3.5 です。
80 名前:nobodyさん mailto:sage [2009/09/18(金) 13:16:48 ID:???] zlib入れろ
81 名前:nobodyさん [2009/09/18(金) 13:56:09 ID:ITCAk7dP] >>80 返信ありがとうございます。 調べてみたところ、zlibが存在してるんですが、別口で入れるものでしょうか? C:\ruby\bin>ls zlib* zlib1.dll
82 名前:nobodyさん [2009/09/18(金) 14:50:59 ID:LN3EfzwI] >>74 , 77 smbclientで共有してみましたが cap deploy 失敗してしまいました。 65さんのおっしゃる >>excutable `svn' not present or not in $PATH on the local system! このエラーメッセージが毎回出現します。意味がよく分からないのですが、どういうことでしょうか? 重ね重ねすみません。
83 名前:nobodyさん mailto:sage [2009/09/18(金) 16:35:16 ID:???] >>82 svn コマンドが PATH から見つからないって言っているんじゃないの?
84 名前:nobodyさん [2009/09/18(金) 17:26:03 ID:LN3EfzwI] >>83 WindowsでもLinuxの方でもsvnコマンドは実行出来るのですが、まだ何かパスを通さなければいけないのでしょうか? それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。
85 名前:nobodyさん mailto:sage [2009/09/18(金) 17:46:12 ID:???] >>84 ディプロイ先にログイン(svnを実行できるケース)して $ echo $PATH $ which svn 次に、capistranoから run 'echo $PATH' してみたらどうなる?
86 名前:nobodyさん [2009/09/18(金) 18:21:16 ID:LN3EfzwI] >>85 $ echo $PATH /usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tyn/bin $ which svn /usr/bin/svn 以上コマンド入力の結果です。 >>次に、capistranoから run 'echo $PATH' してみたらどうなる? deploy.rbに run 'echo $PATH' というコードを記述すればよいのでしょうか? 間違っていたらごめんなさい。
87 名前:nobodyさん mailto:sage [2009/09/18(金) 18:36:03 ID:???] あー、 $ cap invoke COMMAND='echo $PATH' でいいや。と思ったが、/usr/bin/svn なら cap から実行したときも 見える可能性が高いな。 > excutable `svn' not present or not in $PATH on the local system! んん、ローカル!?
88 名前:nobodyさん mailto:sage [2009/09/18(金) 18:51:18 ID:???] >>84 > それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。 え? LinkStation にリポジトリがあるって言ってなかったか?
89 名前:nobodyさん mailto:sage [2009/09/18(金) 19:16:52 ID:???] >>84 >それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。 file:でやってるなら不要。
90 名前:nobodyさん [2009/09/18(金) 19:19:19 ID:LN3EfzwI] >>88 mkdir L:\demo svnadmin create L:\demo 以上のコマンドを入力してリポジトリを作成しました。Windowsマシンからアクセスしているので、 LinkStationにはimportしたファイルしか置いてないです。。
91 名前:nobodyさん mailto:sage [2009/09/18(金) 19:20:45 ID:???] L:はLinkStationで公開しているディスクをWindowsで見たときの ドライブレターということでよろしいか?
92 名前:nobodyさん [2009/09/18(金) 19:25:55 ID:LN3EfzwI] >>91 はい。
93 名前:nobodyさん mailto:sage [2009/09/19(土) 01:20:18 ID:???] ruby script/generate model Blog name:string user_id:integer generateスクリプトからマイグレーションファイルを作成する場合、カラムは型しか指定できないのですか? ググってみてもドキュメント読んでもこんな感じの例しかない。 カラムごとに{:null => false, :limit => 100}みたいなオプションが使えると便利なのに。
94 名前:nobodyさん mailto:sage [2009/09/19(土) 04:02:31 ID:???] >>93 generatorのテンプレート見れば一発でわかるが、名前と型のみ。 scaffoldのビューで必要な情報しか引数に取るようになってない。
95 名前:nobodyさん mailto:sage [2009/09/19(土) 05:19:30 ID:???] >>93 > カラムごとに{:null => false, :limit => 100}みたいなオプションが使えると便利 全然便利じゃないと思うぞそれ
96 名前:nobodyさん mailto:sage [2009/09/19(土) 10:40:16 ID:???] 回答ありがとうございます。 >>94 なるほど〜やっぱりダメなんですね。 >>95 便利じゃないですか? generate実行した後に、いつもマイグレーションファイルを修正するってのはRailsの精神に反してる気がしますけど。
97 名前:nobodyさん mailto:sage [2009/09/19(土) 10:58:04 ID:???] >>96 じゃあ仮にカラムが20〜30あると仮定して 想定されるコマンドラインを頑張って書いてみてくれw
98 名前:nobodyさん mailto:sage [2009/09/19(土) 11:11:46 ID:???] generate文で指定するのが大変な時は省略してデフォルト値にすればいいだけじゃないですか? カラムが2〜3個しかないようなテーブルだってよくあることだし、そんな時はgenerate文で全部指定したくなる。 きめ細かく設定できるけど省略すればデフォルト値が用意されてるってのがRailsのスタイルだと思ってた。
99 名前:nobodyさん mailto:sage [2009/09/19(土) 11:36:25 ID:???] そう思うなら直してpull requestでも投げとけ。
100 名前:nobodyさん mailto:sage [2009/09/19(土) 11:49:47 ID:???] migrationを極力シンプルにして、バリデーションはモデルだけに書く派なので 今のジェネレータでとくに困ってないな
101 名前:nobodyさん mailto:sage [2009/09/19(土) 12:01:17 ID:???] >>98 そんな generate が欲しいなら勝手に改造したら? ただの rubyスクリプトだよ で、すべての型の妥当なデフォルト値とやらを考えてみたらいいよ
102 名前:nobodyさん mailto:sage [2009/09/19(土) 12:24:18 ID:???] 型をデフォルトにするなんて誰も言ってないけど
103 名前:nobodyさん mailto:sage [2009/09/19(土) 12:35:58 ID:???] 確かに「誰も」言ってないw
104 名前:nobodyさん mailto:sage [2009/09/19(土) 12:47:51 ID:???] 「すべての型におけるオプションの妥当なデフォルト値」くらいか?
105 名前:nobodyさん mailto:sage [2009/09/19(土) 13:40:07 ID:???] >>104 そう、そんな感じ。言い方が悪かった。 ruby script/generate model Book title(:string, null=>false, limit=>50) author(:string, limit=>50) description:string これで title・・・null不可、上限50文字 author・・・null可(デフォルト)、上限50文字 descriptionはnull可(デフォルト)、 上限255文字(デフォルト) みたいに定義できたら便利だと思う。
106 名前:nobodyさん mailto:sage [2009/09/19(土) 18:39:42 ID:???] >>105 全く便利じゃない
107 名前:nobodyさん mailto:sage [2009/09/19(土) 18:41:51 ID:???] generate文(笑) DSL じゃねえっつーの
108 名前:nobodyさん mailto:sage [2009/09/19(土) 18:51:00 ID:???] >>105 シェルのメタキャラクタがむき出しなんですけど
109 名前:nobodyさん mailto:sage [2009/09/19(土) 19:04:05 ID:???] 個人的には>>105 の考え方に同意。まぁ人によって感じ方は違うだろうけど。
110 名前:nobodyさん mailto:sage [2009/09/19(土) 21:29:58 ID:???] >>105 django
111 名前:nobodyさん mailto:sage [2009/09/20(日) 01:35:43 ID:???] ↓こんな感じで、itemモデルのmy_text要素を編集画面で使ってるのですが <% form_for(@item) do |f| %> <%= f.text_area, :my_text %> <% end %> このmy_text要素の「<br/>」という文字列を改行(\n)に置換したいのですが、 どうしたらいいでしょうか…。 そのmy_text内に<br/>を保持させるなというのは、要件なので無理です。 ↓こう書き換えれば一応うごくのですが・・・もっとスマートにできるのかなぁと・・・ <%= f.text_area :my_text, {:value => f.object["my_text"].gsub("<br\/>", "\n") } %>
112 名前:nobodyさん mailto:sage [2009/09/20(日) 03:54:52 ID:???] ヘルパーメソッドに変換用のメソッド作れば?