【Ruby】Ruby on Rail ..
2:nobodyさん
09/09/13 20:50:59
前スレ999は何が言いたかったのだろう。
3:nobodyさん
09/09/13 20:51:01
O2
4:1
09/09/13 20:53:14
■変遷
【Agile】Ruby on rails相談所【DRY】
スレリンク(php板)
【Agile】Ruby on rails相談所 part2【DRY】
スレリンク(php板)
【Ruby】Ruby on Rails Part3
スレリンク(php板)
↓ム板に
Ruby on Rails
スレリンク(tech板)
↓
Ruby on Rails のスレ が
スレリンク(php板)
↓
【Ruby】Ruby on Rails Part6
スレリンク(php板)
↓
【Ruby】Ruby on Rails Part7
スレリンク(php板)
↓
【Ruby】Ruby on Rails Part8
スレリンク(php板)
(イマココ)
5:1
09/09/13 20:55:27
立てました。
ところで >>4 の変遷って、今後もいるのかな?
次スレを、いつ誰が立てることになるのかはわからないけど、
ちょっと疑問に思ったので今のうちに議論しておいたほうがいいかなと思いました。
6:nobodyさん
09/09/13 21:03:45
>>1
乙であります。
7:nobodyさん
09/09/13 21:09:03
前のスレで
rdocのview sourceが素晴らしい
と言ってる方がいましたが、これは何のことでしょうか?
8:nobodyさん
09/09/13 21:09:51
>>5
> ところで >>4 の変遷って、今後もいるのかな?
個人的には前スレだけで十分
代わりに定番プラグイン一覧みたいなのが欲しいところ
> 次スレを、いつ誰が立てることになるのかはわからないけど、
> ちょっと疑問に思ったので今のうちに議論しておいたほうがいいかなと思いました。
>>950 が立てること、とかでいいじゃないか。
そういうルールもテンプレに含めておくべきだな。
9:nobodyさん
09/09/13 21:21:19
自分も前スレだけで十分。
次スレは>>950が立てればいいと思う。
10:nobodyさん
09/09/13 21:24:33
>>7
ドキュメントにソースがついているところじゃないかな?
俺はRailsのchmしか使ってないけど、メソッドのところ見ると、該当ソースが見れる。
これがえらく便利。
わがまま言えば、該当ソース内で他のメソッドクリックするとそのソースも見れる、みたいなのだともっといいんだろうけどねえ…。
chmジャム陸際な
11:nobodyさん
09/09/13 22:18:58
980くらいでも大丈夫
12:nobodyさん
09/09/14 00:54:13
名前付きルートにモデルインスタンスを渡すソースをよく見ます。
@entry = Entry.new(params[:entry])
redirect_to entry_url(@entry)
みたいな感じです。
ネットなどで調べると、名前付きルートentry_urlの引数はidしか渡せないようなのですが、
モデルインスタンスが渡された場合はインスタンスからidを取り出すなどの特別扱いをされるのでしょうか?
13:5
09/09/14 02:08:24
>>8-9
わかりました。
14:nobodyさん
09/09/14 05:36:47
>>12
> ネットなどで調べると、名前付きルートentry_urlの引数はidしか渡せない
ハッシュも渡せるYO!!
entry_url(:id => 10)
こういう、引数の色んな渡し方が可能なメソッドは大抵
is_a? とか respond_to? を使って実行時型チェックをやってるので、
その一環としてモデルオブジェクトからは id を取得するようになっているのだろう。
ソース追っかけたわけではないので推測だけど、、、
15:nobodyさん
09/09/14 09:54:44
>>7
このやり方ってどうするんですか?
16:nobodyさん
09/09/14 10:30:34
>>12
url_forのドキュメントとソースが参考になるのではないかと
17:nobodyさん
09/09/14 10:39:09
>>15
rdoc --inline-source(-S)
18:nobodyさん
09/09/14 10:44:29
>>15
>>1 にあるRailsの公式APIリファレンスや github でホスティングされている
gem の rdoc なんかはそうなっているから、そっちを参照したら?
ローカルのgemや自作ライブラリのドキュメントを生成するなら
ひとまず rdoc の使い方を覚え、gem server などでググる必要があると思われる。
でも自分はあんまりローカルgemのrdocは見ないなあ、大抵guthubの方を見る
19:nobodyさん
09/09/14 18:24:50
railsだとrake doc:railsってコマンドでもドキュメント作れるけど、このコマンドはみんな使ってないの?
20:nobodyさん
09/09/14 19:19:32
どんなコマンドがあるのかわからん
コマンド一覧表作ってくれんかな
21:nobodyさん
09/09/14 20:11:48
>>20
rake --tasks
22:nobodyさん
09/09/14 20:16:10
zsh だと
rake <Tab> でコメント付きのタスク一覧を補完候補として表示してくれたりする
23:nobodyさん
09/09/14 20:43:56
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さん
09/09/14 21:23:58
>>23
個人的には polymorphic associationが好み。
あまり美しくないが、一応選択肢として:
Rails的にはSTI(Single Table Inheritance)がお手軽。
25:nobodyさん
09/09/14 22:06:40
3つ目の案として、UserとRoleの2つのモデルで一般ユーザ、管理者を表現するのはどうかな。
rolesテーブルには一般ユーザと管理者のレコードを入れて権限マスタとして使う。
で、usersテーブルにrole_idを持たせる。
26:25
09/09/14 22:08:23
あ、失礼。
>>23のAと同じだった。
27:23
09/09/14 22:13:49
>>24
やはりrailsの場合polymorphicが良いのですね。
Single Table Inheritanceは知りませんでした。少し調べてみたら@でやる場合はすごく便利そう…validationもuserモデルに書くだけで良くなるからむしろAより綺麗かも?
polymorphicかSTIかでもうちょっと考えてみます。
ありがとうございました。
28:23
09/09/14 22:16:12
>>25
ありがとうございます。
Aとは違うような…3つテーブルを作らないということですよね?
29:nobodyさん
09/09/14 22:18:10
Railsとか関係なしにAは駄目だろ
memberとadminを区別しないで扱いたい時とか破綻する
30:23
09/09/14 22:26:53
破綻しますか?Aの場合でもuserからmemberとadminを辿れるから問題無いと思うけど。
31:nobodyさん
09/09/14 22:44:58 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さん
09/09/14 23:03:43
>>31
form_forでエラーになっているのであれば、form_tag使えばいいんじゃない?
<% form_tag(:action => アクション名) do %>
<%= text_field(:hoge, :name) %>
以下略
<% end %>
33:nobodyさん
09/09/15 00:21:30
>>23
わざわざ二つに分ける意味がわからん
なぜ二つに分けようと考えたんだ?
34:nobodyさん
09/09/15 00:22:25
メンバーから管理者に変更するときとか面倒そうだな
35:nobodyさん
09/09/15 00:24:43
userテーブルは要らないな。memberテーブルとadminテーブルだけあれば済むこと。
36:23
09/09/15 02:04:52
何度もすいません。
memberテーブルとadminテーブルに分けたのは、一般ユーザーと管理者ユーザーで必要なカラムが違うからです。
userテーブルを作ったのは、ログイン認証の時に一つのテーブルを見るだけで済むようにするためです。
restful_authenticationなどのプラグインなどを使う場合ユーザー認証のテーブルが二つあるとやっかいだと思いました。
>>34さんが言うように変更が面倒くさそうなので、userテーブルだけ作ってmember固有のカラムもadmin固有のカラムもuserに突っ込むことも考えましたが、
そうしてしまうと今度はmemberとadmin以外の種類のuserが必要になった時に大変だと思いました。
自分なりに考えた結果、userとmemberとadminの3つのテーブルを用意するのがいいと判断しましたが、一般的なwebシステムではこういう分け方はあまりやらないのでしょうか。
37:nobodyさん
09/09/15 03:06:36 AVq3Mqvr
この流れの中、恥を忍んで聞くのですが、個人で作ってるシステムで、
「管理者=自分」と「その他ユーザー」という区別しかない場合、
特定のID(例えば 1)を持つユーザーが管理者、とハードコードしてしまうのって
どうなんですかね?
role を導入しようかと思ったんですが、
管理者か否かの二値を区別するのに roleテーブルも大げさかなと
38:nobodyさん
09/09/15 03:43:36
accessor isadmin
39:nobodyさん
09/09/15 09:01:10 Gt2owe1a
>>37
role導入でいいと思う。今は2つの値しか扱わないとしても、ハードコーディングするより全然いい。
40:37
09/09/15 12:30:53
>>39
ありがとうございます。
今後のことも考えて role を導入してみます。
41:nobodyさん
09/09/15 18:06:59
roleってなんだ???
42:nobodyさん
09/09/15 18:44:33
堂島role
43:nobodyさん
09/09/15 18:57:55
質問があります。
バリデーションエラー時に、エラー箇所を赤く表示したいのですが、微妙に変な挙動になります。
<div class="fieldWithErros">が挿入されるため、場合によって画面が崩れてしまいます。
そのため下記サイトのように、<span ...>に置き換えるようにしたのですが、
そうすると、textareaのような要素が何故か、背景が赤くならずに下だけが赤くなります。
多分、<span>がinlineで<textarea>がblockなせいだとは思うのですが・・・
うまく解決する方法はないでしょうか?
ちなみに、下記サイトのcssを追加した場合は、赤い背景のほかに赤い枠がとびでて不恰好になってしまいます・・・。
.fieldWithErrosがtextareaだけ変な件, ファイルアップロードのvalidates, option_groups_from_collection_for_select 使ったらfieldWithErrorsが出なくな.. - capsctrldays(2006-04-14)
URLリンク(capsctrl.que.jp)
44:nobodyさん
09/09/15 20:23:27 Gt2owe1a
>>43
divのままでも
div.fieldWithErrors {
display: inline;
}
こうすれば崩れなくなると思う。
45:nobodyさん
09/09/15 20:28:15
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さん
09/09/15 20:31:02
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さん
09/09/15 20:34:49
長すぎて容量制限にひっかかる(泣
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さん
09/09/15 20:36:51
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さん
09/09/15 20:37:35
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さん
09/09/15 20:41:44
>>44
やってみたのですが、<span>のときと同じように、
背景がうまく赤くならずに、textareaのときは下の方だけが赤くなったりしてしまいます・・・。
51:nobodyさん
09/09/15 20:50:52 Gt2owe1a
>>50
とりあえず、デザインの崩れは解決したんだよね?
あとはcssを調整すればなんとかなるはず。
.fieldWithErrors textarea {
background: #ff0000;
}
で、いけないかな?
52:nobodyさん
09/09/15 21:03:14
>>46
SFTPTransferWrapperの中でコケてるようだけど、うーん……
公開鍵の有無とかパスワード認証の許可状況とか?
53:nobodyさん
09/09/15 21:28:04
突然ならディレクトリの容量が足りないんじゃなくて?
54:45
09/09/16 11:14:19
ありがとうございます。
書き忘れましたが、本番鯖の設定とテスト鯖の設定の切り替えにcapistrano-extというgemを使っています。
>>52
こちらでもソースを見ていたのですが、やっぱり、SFTPがおかしいのですかね…。
サーバー側のsshd設定何か弄ったかな…うーん。
本番サーバーにwinscpのSFTPで同じユーザーで適当な10MBくらいのファイルを何度か転送してみましたが、
問題ない感じでした。
capistrano側の設定なのかな…
ほぼ同じcapistranoの設定(ドメインとssh接続portのみ異なる)でテスト環境では問題ない点が?です。
sshは公開鍵を使っていますので、鍵の設定も見直してみます。pageantを併用していたはず
>>53
昨日、サーバーでdfで確認してみましたが、転送先のディレクトリ(/home/www/my_project)含むパーティション、
及びアーカイブ一時展開先の /tmpともに問題なく空いていました。
しかし、念のためもう一度確認してみます。
55:nobodyさん
09/09/16 11:33:18
>>54
まさかとは思うが、root でログインしようとかしてないよね?
PermitRootLogin no で弾かれてるとか
56:nobodyさん
09/09/16 18:38:05
Railsでmigration使わない開発ってアリでしょうか?
使い慣れたDB設計ツールからSQL吐きたいってのは邪道ですか?
57:45
09/09/16 19:23:55
>>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
09/09/16 19:35:00
解決しました(`・ω・´)
sshdの設定がテスト環境と違っていたので、修正してみたところ無事デプロイが通るようになりました。
/etc/ssh/sshd_config にて、
ClientAliveInterval 15
ClientAliveCountMax 3
↓
ClientAliveInterval 60
のように修正しsshdを再起動したところ、うまく行くようになりました。
他のsshクライアントでうまく行くから他の原因かと思ってました。
みなさまのおかげさまです。ありがとうございました。
59:nobodyさん
09/09/16 20:28:55
>>56
ふつうにアリだよ。
60:nobodyさん
09/09/16 21:34:48
普通にナシだろう。逆に手間かかるのがオチ
61:nobodyさん
09/09/16 21:40:58
>>60
既存DBを使うようなものは作ったことがないんですね。
62:nobodyさん
09/09/16 23:03:54 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さん
09/09/16 23:05:46 hMTblvM+
エラーメッセージは以上です。
よろしくお願い致します。
64:nobodyさん
09/09/16 23:35:15
>>60
幸せな環境で仕事してるんだろうなぁ。羨まし
65:nobodyさん
09/09/16 23:59:26
>>62
excutable `svn' not present or not in $PATH on the local system!
ってことじゃんか?
ローカルとリモートでsvnが使える?
66:nobodyさん
09/09/17 00:06:00
>>62
> ** [tyn-market.com :: err] svn: URL 文字化けしている ra_local 文字化けしている
> ** [tyn-market.com :: err] svn: 文字化けしている 'file:///L:/demo/branches/stable' 文字化けしている
これ、ディプロイ先でチェックアウトしようとしたときにsvnが受け取っている
リポジトリパスなんだが、たぶんローカルでチェックアウトするときのをそのまま
使ってるよね?
67:nobodyさん
09/09/17 10:14:22 AsBV+oBz
vim-railsで変数の定義部にジャンプする機能ってないですかねぇ??
統合開発環境であるような。
そもそもvimではそういうのって無理なのかしらん。
エディタの話になってしまって申し訳ないですが・・詳しい方いたら教えていただけると幸いです。
68:nobodyさん
09/09/17 10:28:36
>>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さん
09/09/17 11:19:40
railsで80000pv/日のサイト運営したいんですけど月何万ほどかかりますか?
70:nobodyさん
09/09/17 11:58:28
PHP の 3 倍くらいかな
71:nobodyさん
09/09/17 12:27:35
80000pv/日のコンテンツ(ネタ)を持っているだけでうらやましい
エロサイトかなにか?(悪く行っているのではありません)
技術を身につけても、プライベートではサイトを開くネタがないよ。
(本業が SE なので、仕事では顧客から請け負った業務イントラを Rails で作っているけど)
72:nobodyさん
09/09/17 15:16:06
>>67
タグで飛べばいいじゃないの?
73:nobodyさん
09/09/17 15:19:26 WSgiLhix
>>65, 66, 68
回答有り難うございます。Railsデプロイ読みながらやっているのですが、バージョン管理システムを使うのも初めてなものでして。。
"リモート"がリポジトリのあるLinkStationで、"ローカル"が開発作業をしているWindowsマシンで、"サーバ側"がデプロイ先のLinuxマシンという理解で良いでしょうか?
ご指摘の通りサーバ側からLinkStationにアクセスできる設定にはしておらず、ローカルでチェックアウトするときのパスがそのまま使えると思っていました。
ローカルのSubversionを使ってデプロイ先のサーバにアクセスしていると勘違いしていました。
サーバ側のSubversionは何か設定やリポジトリの作成??が必要なのでしょうか。手元にある書籍では殆ど触れられておらず、今ひとつ全体像がつかめずにいます。
何かあれば助言頂けないでしょうか。よろしくお願いします。
set :deploy_via, :copy も試してみようと思います。
74:nobodyさん
09/09/17 17:54:24
サーバ側でsmbclientなどを使ってLinkStationのファイルを共有する設定にしても
よさそうね。
75:nobodyさん
09/09/17 18:59:24
Rails3.0っていつ出るんだい?
76:nobodyさん
09/09/17 19:40:34
年内にはβに到達しないと予測。
77:nobodyさん
09/09/17 19:57:25
>>73
Fedoraの方にログインして
ssh でも http でも samba でもなんでもいいからやりやすいので LinkStation にアクセスできるようにして
$ svn ls リポジトリ
が通ればOK
set :deploy_via, :copy はサーバ側を弄らせてもらえない場合の最終手段かな
78:nobodyさん
09/09/18 12:52:28 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さん
09/09/18 12:56:06 ITCAk7dP
>>78です。
情報が足りてませんでした。
Windows XP SP3
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
gem 1.3.5
です。
80:nobodyさん
09/09/18 13:16:48
zlib入れろ
81:nobodyさん
09/09/18 13:56:09 ITCAk7dP
>>80 返信ありがとうございます。
調べてみたところ、zlibが存在してるんですが、別口で入れるものでしょうか?
C:\ruby\bin>ls zlib*
zlib1.dll
82:nobodyさん
09/09/18 14:50:59 LN3EfzwI
>>74, 77
smbclientで共有してみましたが cap deploy 失敗してしまいました。
65さんのおっしゃる
>>excutable `svn' not present or not in $PATH on the local system!
このエラーメッセージが毎回出現します。意味がよく分からないのですが、どういうことでしょうか?
重ね重ねすみません。
83:nobodyさん
09/09/18 16:35:16
>>82
svn コマンドが PATH から見つからないって言っているんじゃないの?
84:nobodyさん
09/09/18 17:26:03 LN3EfzwI
>>83
WindowsでもLinuxの方でもsvnコマンドは実行出来るのですが、まだ何かパスを通さなければいけないのでしょうか?
それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。
85:nobodyさん
09/09/18 17:46:12
>>84
ディプロイ先にログイン(svnを実行できるケース)して
$ echo $PATH
$ which svn
次に、capistranoから
run 'echo $PATH'
してみたらどうなる?
86:nobodyさん
09/09/18 18:21:16 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さん
09/09/18 18:36:03
あー、
$ cap invoke COMMAND='echo $PATH'
でいいや。と思ったが、/usr/bin/svn なら cap から実行したときも
見える可能性が高いな。
> excutable `svn' not present or not in $PATH on the local system!
んん、ローカル!?
88:nobodyさん
09/09/18 18:51:18
>>84
> それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。
え? LinkStation にリポジトリがあるって言ってなかったか?
89:nobodyさん
09/09/18 19:16:52
>>84
>それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。
file:でやってるなら不要。
90:nobodyさん
09/09/18 19:19:19 LN3EfzwI
>>88
mkdir L:\demo
svnadmin create L:\demo
以上のコマンドを入力してリポジトリを作成しました。Windowsマシンからアクセスしているので、
LinkStationにはimportしたファイルしか置いてないです。。
91:nobodyさん
09/09/18 19:20:45
L:はLinkStationで公開しているディスクをWindowsで見たときの
ドライブレターということでよろしいか?
92:nobodyさん
09/09/18 19:25:55 LN3EfzwI
>>91
はい。
93:nobodyさん
09/09/19 01:20:18
ruby script/generate model Blog name:string user_id:integer
generateスクリプトからマイグレーションファイルを作成する場合、カラムは型しか指定できないのですか?
ググってみてもドキュメント読んでもこんな感じの例しかない。
カラムごとに{:null => false, :limit => 100}みたいなオプションが使えると便利なのに。
94:nobodyさん
09/09/19 04:02:31
>>93
generatorのテンプレート見れば一発でわかるが、名前と型のみ。
scaffoldのビューで必要な情報しか引数に取るようになってない。
95:nobodyさん
09/09/19 05:19:30
>>93
> カラムごとに{:null => false, :limit => 100}みたいなオプションが使えると便利
全然便利じゃないと思うぞそれ
96:nobodyさん
09/09/19 10:40:16
回答ありがとうございます。
>>94
なるほど〜やっぱりダメなんですね。
>>95
便利じゃないですか?
generate実行した後に、いつもマイグレーションファイルを修正するってのはRailsの精神に反してる気がしますけど。
97:nobodyさん
09/09/19 10:58:04
>>96
じゃあ仮にカラムが20〜30あると仮定して
想定されるコマンドラインを頑張って書いてみてくれw
98:nobodyさん
09/09/19 11:11:46
generate文で指定するのが大変な時は省略してデフォルト値にすればいいだけじゃないですか?
カラムが2〜3個しかないようなテーブルだってよくあることだし、そんな時はgenerate文で全部指定したくなる。
きめ細かく設定できるけど省略すればデフォルト値が用意されてるってのがRailsのスタイルだと思ってた。
99:nobodyさん
09/09/19 11:36:25
そう思うなら直してpull requestでも投げとけ。
100:nobodyさん
09/09/19 11:49:47
migrationを極力シンプルにして、バリデーションはモデルだけに書く派なので
今のジェネレータでとくに困ってないな
101:nobodyさん
09/09/19 12:01:17
>>98
そんな generate が欲しいなら勝手に改造したら?
ただの rubyスクリプトだよ
で、すべての型の妥当なデフォルト値とやらを考えてみたらいいよ
102:nobodyさん
09/09/19 12:24:18
型をデフォルトにするなんて誰も言ってないけど
103:nobodyさん
09/09/19 12:35:58
確かに「誰も」言ってないw
104:nobodyさん
09/09/19 12:47:51
「すべての型におけるオプションの妥当なデフォルト値」くらいか?
105:nobodyさん
09/09/19 13:40:07
>>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さん
09/09/19 18:39:42
>>105
全く便利じゃない
107:nobodyさん
09/09/19 18:41:51
generate文(笑)
DSL じゃねえっつーの
108:nobodyさん
09/09/19 18:51:00
>>105
シェルのメタキャラクタがむき出しなんですけど
109:nobodyさん
09/09/19 19:04:05
個人的には>>105の考え方に同意。まぁ人によって感じ方は違うだろうけど。
110:nobodyさん
09/09/19 21:29:58
>>105
django
111:nobodyさん
09/09/20 01:35:43
↓こんな感じで、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さん
09/09/20 03:54:52
ヘルパーメソッドに変換用のメソッド作れば?
113:nobodyさん
09/09/20 11:02:30
最初からHTMLを含まないテキストにしといて
表示するときにsimple_formatやauto_linkを使う手も。
114:nobodyさん
09/09/20 13:07:43
理想は、データは本来の姿(HTML用に整形済みとかでない)で保持して
出力時に必要な処理をすることだけど、
> そのmy_text内に<br/>を保持させるなというのは、要件なので無理です。
「<br/>を保持させるなというのは、(保持するという)要件なので無理」
という意味か。
115:nobodyさん
09/09/21 12:29:55
その要件自体無理なので実装不能で終了したら。
116:nobodyさん
09/09/21 12:59:48
ここまでするくらいなら >>111 で十分という。
class BrSanitizer < HTML::FullSanitizer
def process_node(node, result, options)
if node.class == HTML::Text
result << node.to_s
elsif node.class == HTML::Tag && node.name == 'br'
result << "¥n"
end
end
end
こんなサニタイザを作って、f.text_area_br2n とかいうメソッドの内部で
これを利用して整形する方法。
117:nobodyさん
09/09/24 18:42:36
Railsでブログ(のようなもの)のプレビュー機能を実装したいのですが、足がかりのようなものはありませんでしょうか?
CRUDの編集画面で、データの編集した中身を確定する「送信する」ボタンのほかに、
「プレビュー」ボタンがあるイメージです。
どのように実装したものか?と…。
例えば、form_forで指定した「送信する」の他の「プレビュー」用のURLに送る方法はどうしたものでしょうか?
環境は、Ruby 1.8.7 Rails 2.3.4です。
118:nobodyさん
09/09/24 22:04:34
submitの値で場合分けするんじゃない?
それとも、1つのフォームに複数のアクションを付けられるんだっけ?
119:nobodyさん
09/09/24 22:27:45
ajaxとかどうでしょうか。
フォーム全部divで囲っておいて、プレビューボタンで表示
フォームはその時隠すようにする
120:117
09/09/25 08:15:42
>>118
なるほど…それなら、ボタン2つつけても、プレビュー用の表示ルーチンに持ってこられますね。
>>119
Redmineとか、MediaMarkerみたいなリアルタイムでポコッとプレビューが出現する感じでしょうか?
RailsでのAjaxはまだ全然やっていないので調べてみます。
form_for内のデータをそのまま渡せるのかなーとか疑問があったり・・・
121:nobodyさん
09/09/25 17:00:44
ajaxならフォーム全体でも、一部でも問題なくpostできるけど
122:nobodyさん
09/09/25 20:29:53
困っていることがあります。
論理削除プラグインのacts_as_paranoidと、階層構造を1つのformで保存したりするattribute_fu プラグイン
を導入しているのですが、
モデルHoge
acts_as_paranoid
has_many :foobars, :dependent => :destroy, :attributes => true
モデルFoobar
acts_as_paranoid
belongs_to :hoge
などとというように書いておくと、
Hogeをdestroyで消した時に、:dependent => :destroyにて関連付けたFoobar郡を同時に論理削除してくれるのですが、
中で freezeをかましているようでして、
:attributes => true をつけて attribute_fu の管理下においた状態だと、
Hogeをsave時に freezeされたfoobars を保存しようとして、
can't modify frozen hash
などとエラーがでます orz
こういう状況を回避する方法はないのでしょうか?
destroyのときだけ、:attributes => true をなくす、というか、
attribute_fuで base.class_eval されている中の
after_update :save_managed_associations
のフック処理(この中で該当のエラーが起きている)を回避する方法といいますか…。
acts_as_paranoidは下記のものを、
technoweenie's acts_as_paranoid at master - GitHub
URLリンク(github.com)
attribute_fuは下記のものを利用しています。
giraffesoft's attribute_fu at master - GitHub
URLリンク(github.com)
123:nobodyさん
09/09/25 23:26:44
rails1.2向けに書かれた本で、勉強してるのですが
インスコしたrailsが2.1.1ですた。エラーでて気づきました。
scaffoldの作法が変わってるんですね。
1.2なrailsをインストして、勉強したほうがいいですかね?
124:nobodyさん
09/09/25 23:37:55
>>123
バージョンが違うと、また違うところでつまづくよ。
とりあえず、1.2のrailsをインストールして本を1冊終わらせる。
その後、最新のRailsでアプリを作っていくほうがいいと思う。
125:nobodyさん
09/09/25 23:49:30
>>122
Railsの新しいの使ってんなら find のデフォルト値設定できたはずだから
1系用に苦し紛れに作られたような acts_as_paranoid はもう用無しじゃね?
と、適当にレスしてみる
126:nobodyさん
09/09/25 23:50:52
ラジャ!
127:123
09/09/26 00:17:09
rails1.0向けだったわ・・
新しい本買うかな・・・
128:nobodyさん
09/09/26 07:37:14
>>127
1.0なのか・・・
たしか、2.3対応の本が出ていたと思うので、それを買うほうがいいかもね。
「Ruby on Rails 2」ではじめるWebアプリケーション開発
ってやつ。
中身はちゃんと見てないので、良い本かは分からないけど。
129:nobodyさん
09/09/26 11:20:40
2006年の本だが……、arton氏の
「かんたんRuby on RailsでWebアプリケーション開発」
は、特定のバージョンのRailsを本に添付して、それに沿って
教えるという体裁だったな。
新しめのでも似たような本はあるかもしれない。
130:nobodyさん
09/09/26 11:23:52
>>122
> destroyのときだけ、:attributes => true をなくす
ではないけれど、フリーズ状態でなければ実行というアプローチで、
alias_method_chain :save_managed_associations, :freeze_check
def save_managed_associations_with_freeze_check
save_managed_associations_without_freeze_check unless frozen?
end
とか出来ないかね
131:nobodyさん
09/09/26 14:12:05
なっっげえええええええ
132:nobodyさん
09/09/26 14:46:53
>>128
おいおい工学社のRails本を薦めるな。中身をちゃんと見てくれよ。
133:nobodyさん
09/09/27 04:32:29
エラーが出たときだけproduction.logに出力させるのはどうすればいいのでしょうか?
今はすべてのアクセスが記録されてすぐ肥大してしまいます
一応毎日ログローテーションはしていますが、エラーだけ残せばサーバーリソースも節約できると考えました
よろしくお願いします
134:nobodyさん
09/09/27 10:01:47 u6jeeNBu
environments/production.rbの中でconfig.log_level = :warn
135:nobodyさん
09/09/27 14:40:48 gn9S1exE
Apache + Passenger でRailsプロジェクトを自宅サーバで公開しようと思い、Passengerをインストールしてhttpd.confを設定したのですが、プロジェクトのページが表示されません。
どうすればよいでしょうか?質問が抽象的ですいません。
136:nobodyさん
09/09/27 14:45:56
うん。抽象的すぎる。それで分かればエスパー。
Passengerのインストール後、「以下の設定をせよ」と出てくるもの
だけでは設定終わらないよ。
137:nobodyさん
09/09/27 17:21:16
>>135
抽象的になっちゃうけど、
Passengerのインストールかhttpd.confの設定が間違っているんだと思うんで
そこらへん見直すといいよ。
138:nobodyさん
09/09/28 20:03:00
画像うpできるシステム作ってるんだけど、画像をバイナリでDBに持たすのと、
実ファイルとして保存するの、どっちがお好み?
139:nobodyさん
09/09/28 21:16:33
業務アプリで、サーバを冗長化する予定があるなら悩む。
個人の趣味では面倒なのでファイルで持つ。アクセス制御とか出来るように、
DocumentRootには置かずに何らかのアクション経由で提供する。
140:nobodyさん
09/09/28 23:15:21
>>139
ありがとうございます。
趣味アプリなので悩みましたが、やっぱdbにしますた。
↓この方法で、初回読み込み時はDBから、2回目はtempファイルから…という
考え方がすばらしい。
URLリンク(d.hatena.ne.jp)
141:nobodyさん
09/09/28 23:29:56
ファイルがたくさん追加される可能性があるなら、
ディレクトリをわけるのを忘れずにね
142:nobodyさん
09/09/28 23:50:00
>>141
ファイル名は一意になるのですが、ディレクトリ分けた方がいいんですかね?
143:nobodyさん
09/09/28 23:54:37
一般に、ディレクトリってのは、内包するファイルの数が増えると
パフォーマンスが落ちるのだよ。
ファイルデータのmd5sumの最初の2文字くらいで2層ディレクトリ
を掘るのをよく見るね。
144:nobodyさん
09/09/29 00:07:29
5万ファイルくらいtouchしてからlsしてみるとわかるよ。
145:nobodyさん
09/09/29 00:15:57
>>143-144
ありがとうございます。
非常に勉強になりました。
146:nobodyさん
09/09/29 15:49:52
>>134
ありがとうございました!
147:nobodyさん
09/09/29 18:24:03
text_field_tagやurl_forなどの初めからあるヘルパをちょっと拡張したい場合
どうやるのがいいのでしょうか。
module MobileFormHelper
def self.included(klass)
klass.class_eval do
alias_method_chain :text_field_tag, :mobile
end
end
def text_field_tag_with_mobile(name, value = nil, options = {})
options = options.dup
mobile_format = options[:mobile_format]
if mobile_format
options[:istyle] = ...
...
...
end
text_field_tag_without_mobile(name, value, options)
end
end
こんなかんじでやってんだがうまくできないすっすー
148:nobodyさん
09/09/29 19:19:13
>>139
> DocumentRootには置かずに何らかのアクション経由で提供する。
これはつまり、public以下(例えば public/images/upload )には置かず、
upload/ など見えないところにファイルを置いて、
コントローラーで画像を読み込んで返すようにするってことでしょうか?
アクセス制限が使えるけど、Rails返すと重くならないものかな?
149:nobodyさん
09/10/02 07:08:55
Rails 3.0が1.8.7よりも前のバージョンをサポートしないと明言した
150:nobodyさん
09/10/02 19:56:55 khUy0zA7
1.8.6のHashはバグ持ちだからか
151:nobodyさん
09/10/02 20:13:30
>>150
なんかあったっけ?
152:nobodyさん
09/10/04 00:57:03 jQSUCkZW
URLリンク(paulbarry.com)
1.8.7以降というのは半月前に公になっていたわけね
153:nobodyさん
09/10/04 01:47:54
1.9.1+Rails2.3.2でアプリを作ったのだが、
2.3.4にしたら動かなくなってしまった。2.3.3では問題なかったのだが。
US-ASCIIなんたらとか言ってるから文字コードか。
はよ3.0出ろよ。出たら作りかえるから。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5388日前に更新/279 KB
担当:undef