【Ruby】Ruby on Rails Part8
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/09/13(日) 20:49:34ID:kz4rC4Dxhttp://pc11.2ch.net/test/read.cgi/php/1241100447/
■参考サイト
<英語>
本家:http://www.rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
■参考スレ(プログラム板)
Rubyについて Part 37
http://pc12.2ch.net/test/read.cgi/tech/1251029267/
Ruby 初心者スレッド Part 30
http://pc12.2ch.net/test/read.cgi/tech/1249687283/
0042nobodyさん
2009/09/15(火) 18:44:33ID:???0043nobodyさん
2009/09/15(火) 18:57:55ID:???バリデーションエラー時に、エラー箇所を赤く表示したいのですが、微妙に変な挙動になります。
<div class="fieldWithErros">が挿入されるため、場合によって画面が崩れてしまいます。
そのため下記サイトのように、<span ...>に置き換えるようにしたのですが、
そうすると、textareaのような要素が何故か、背景が赤くならずに下だけが赤くなります。
多分、<span>がinlineで<textarea>がblockなせいだとは思うのですが・・・
うまく解決する方法はないでしょうか?
ちなみに、下記サイトのcssを追加した場合は、赤い背景のほかに赤い枠がとびでて不恰好になってしまいます・・・。
.fieldWithErrosがtextareaだけ変な件, ファイルアップロードのvalidates, option_groups_from_collection_for_select 使ったらfieldWithErrorsが出なくな.. - capsctrldays(2006-04-14)
http://capsctrl.que.jp/kdmsnr/diary/20060414.html
0044nobodyさん
2009/09/15(火) 20:23:27ID:Gt2owe1adivのままでも
div.fieldWithErrors {
display: inline;
}
こうすれば崩れなくなると思う。
0045nobodyさん
2009/09/15(火) 20:28:15ID:???先日より、本番鯖で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
0046nobodyさん
2009/09/15(火) 20:31:02ID:???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'
0047nobodyさん
2009/09/15(火) 20:34:49ID:???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'
0048nobodyさん
2009/09/15(火) 20:36:51ID:???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'
0049nobodyさん
2009/09/15(火) 20:37:35ID:???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
これでエラーメッセージ終わりです。
ご助言いただけると幸いです。
0050nobodyさん
2009/09/15(火) 20:41:44ID:???やってみたのですが、<span>のときと同じように、
背景がうまく赤くならずに、textareaのときは下の方だけが赤くなったりしてしまいます・・・。
0051nobodyさん
2009/09/15(火) 20:50:52ID:Gt2owe1aとりあえず、デザインの崩れは解決したんだよね?
あとはcssを調整すればなんとかなるはず。
.fieldWithErrors textarea {
background: #ff0000;
}
で、いけないかな?
0052nobodyさん
2009/09/15(火) 21:03:14ID:???SFTPTransferWrapperの中でコケてるようだけど、うーん……
公開鍵の有無とかパスワード認証の許可状況とか?
0053nobodyさん
2009/09/15(火) 21:28:04ID:???005445
2009/09/16(水) 11:14:19ID:???書き忘れましたが、本番鯖の設定とテスト鯖の設定の切り替えにcapistrano-extというgemを使っています。
>>52
こちらでもソースを見ていたのですが、やっぱり、SFTPがおかしいのですかね…。
サーバー側のsshd設定何か弄ったかな…うーん。
本番サーバーにwinscpのSFTPで同じユーザーで適当な10MBくらいのファイルを何度か転送してみましたが、
問題ない感じでした。
capistrano側の設定なのかな…
ほぼ同じcapistranoの設定(ドメインとssh接続portのみ異なる)でテスト環境では問題ない点が?です。
sshは公開鍵を使っていますので、鍵の設定も見直してみます。pageantを併用していたはず
>>53
昨日、サーバーでdfで確認してみましたが、転送先のディレクトリ(/home/www/my_project)含むパーティション、
及びアーカイブ一時展開先の /tmpともに問題なく空いていました。
しかし、念のためもう一度確認してみます。
0055nobodyさん
2009/09/16(水) 11:33:18ID:???まさかとは思うが、root でログインしようとかしてないよね?
PermitRootLogin no で弾かれてるとか
0056nobodyさん
2009/09/16(水) 18:38:05ID:???使い慣れたDB設計ツールからSQL吐きたいってのは邪道ですか?
005745
2009/09/16(水) 19:23:55ID:???公開鍵の設定は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転送が可能なことは確認しています。
005845
2009/09/16(水) 19:35:00ID:???sshdの設定がテスト環境と違っていたので、修正してみたところ無事デプロイが通るようになりました。
/etc/ssh/sshd_config にて、
ClientAliveInterval 15
ClientAliveCountMax 3
↓
ClientAliveInterval 60
のように修正しsshdを再起動したところ、うまく行くようになりました。
他のsshクライアントでうまく行くから他の原因かと思ってました。
みなさまのおかげさまです。ありがとうございました。
0060nobodyさん
2009/09/16(水) 21:34:48ID:???0062nobodyさん
2009/09/16(水) 23:03:54ID:hMTblvM+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
エラーメッセージの中に文字化けしている個所がいくつかあります。
0063nobodyさん
2009/09/16(水) 23:05:46ID:hMTblvM+よろしくお願い致します。
0065nobodyさん
2009/09/16(水) 23:59:26ID:???excutable `svn' not present or not in $PATH on the local system!
ってことじゃんか?
ローカルとリモートでsvnが使える?
0066nobodyさん
2009/09/17(木) 00:06:00ID:???> ** [tyn-market.com :: err] svn: URL 文字化けしている ra_local 文字化けしている
> ** [tyn-market.com :: err] svn: 文字化けしている 'file:///L:/demo/branches/stable' 文字化けしている
これ、ディプロイ先でチェックアウトしようとしたときにsvnが受け取っている
リポジトリパスなんだが、たぶんローカルでチェックアウトするときのをそのまま
使ってるよね?
0067nobodyさん
2009/09/17(木) 10:14:22ID:AsBV+oBz統合開発環境であるような。
そもそもvimではそういうのって無理なのかしらん。
エディタの話になってしまって申し訳ないですが・・詳しい方いたら教えていただけると幸いです。
0068nobodyさん
2009/09/17(木) 10:28:36ID:???サーバー側で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
0069nobodyさん
2009/09/17(木) 11:19:40ID:???0070nobodyさん
2009/09/17(木) 11:58:28ID:???0071nobodyさん
2009/09/17(木) 12:27:35ID:???エロサイトかなにか?(悪く行っているのではありません)
技術を身につけても、プライベートではサイトを開くネタがないよ。
(本業が SE なので、仕事では顧客から請け負った業務イントラを Rails で作っているけど)
0073nobodyさん
2009/09/17(木) 15:19:26ID:WSgiLhix回答有り難うございます。Railsデプロイ読みながらやっているのですが、バージョン管理システムを使うのも初めてなものでして。。
"リモート"がリポジトリのあるLinkStationで、"ローカル"が開発作業をしているWindowsマシンで、"サーバ側"がデプロイ先のLinuxマシンという理解で良いでしょうか?
ご指摘の通りサーバ側からLinkStationにアクセスできる設定にはしておらず、ローカルでチェックアウトするときのパスがそのまま使えると思っていました。
ローカルのSubversionを使ってデプロイ先のサーバにアクセスしていると勘違いしていました。
サーバ側のSubversionは何か設定やリポジトリの作成??が必要なのでしょうか。手元にある書籍では殆ど触れられておらず、今ひとつ全体像がつかめずにいます。
何かあれば助言頂けないでしょうか。よろしくお願いします。
set :deploy_via, :copy も試してみようと思います。
0074nobodyさん
2009/09/17(木) 17:54:24ID:???よさそうね。
0075nobodyさん
2009/09/17(木) 18:59:24ID:???0076nobodyさん
2009/09/17(木) 19:40:34ID:???0077nobodyさん
2009/09/17(木) 19:57:25ID:???Fedoraの方にログインして
ssh でも http でも samba でもなんでもいいからやりやすいので LinkStation にアクセスできるようにして
$ svn ls リポジトリ
が通ればOK
set :deploy_via, :copy はサーバ側を弄らせてもらえない場合の最終手段かな
0078nobodyさん
2009/09/18(金) 12:52:28ID:ITCAk7dPそして、インストールの時点でコケてしまいました。
$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
・・・。
この場合、どうすればインストール出来ますか?
ぶしつけですみませんが、教えて!エロい人!
0079nobodyさん
2009/09/18(金) 12:56:06ID:ITCAk7dP情報が足りてませんでした。
Windows XP SP3
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
gem 1.3.5
です。
0080nobodyさん
2009/09/18(金) 13:16:48ID:???0081nobodyさん
2009/09/18(金) 13:56:09ID:ITCAk7dP調べてみたところ、zlibが存在してるんですが、別口で入れるものでしょうか?
C:\ruby\bin>ls zlib*
zlib1.dll
0082nobodyさん
2009/09/18(金) 14:50:59ID:LN3EfzwIsmbclientで共有してみましたが cap deploy 失敗してしまいました。
65さんのおっしゃる
>>excutable `svn' not present or not in $PATH on the local system!
このエラーメッセージが毎回出現します。意味がよく分からないのですが、どういうことでしょうか?
重ね重ねすみません。
0084nobodyさん
2009/09/18(金) 17:26:03ID:LN3EfzwIWindowsでもLinuxの方でもsvnコマンドは実行出来るのですが、まだ何かパスを通さなければいけないのでしょうか?
それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。
0085nobodyさん
2009/09/18(金) 17:46:12ID:???ディプロイ先にログイン(svnを実行できるケース)して
$ echo $PATH
$ which svn
次に、capistranoから
run 'echo $PATH'
してみたらどうなる?
0086nobodyさん
2009/09/18(金) 18:21:16ID:LN3EfzwI$ 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' というコードを記述すればよいのでしょうか?
間違っていたらごめんなさい。
0087nobodyさん
2009/09/18(金) 18:36:03ID:???$ cap invoke COMMAND='echo $PATH'
でいいや。と思ったが、/usr/bin/svn なら cap から実行したときも
見える可能性が高いな。
> excutable `svn' not present or not in $PATH on the local system!
んん、ローカル!?
0088nobodyさん
2009/09/18(金) 18:51:18ID:???> それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。
え? LinkStation にリポジトリがあるって言ってなかったか?
0089nobodyさん
2009/09/18(金) 19:16:52ID:???>それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。
file:でやってるなら不要。
0090nobodyさん
2009/09/18(金) 19:19:19ID:LN3EfzwImkdir L:\demo
svnadmin create L:\demo
以上のコマンドを入力してリポジトリを作成しました。Windowsマシンからアクセスしているので、
LinkStationにはimportしたファイルしか置いてないです。。
0091nobodyさん
2009/09/18(金) 19:20:45ID:???ドライブレターということでよろしいか?
0092nobodyさん
2009/09/18(金) 19:25:55ID:LN3EfzwIはい。
0093nobodyさん
2009/09/19(土) 01:20:18ID:???generateスクリプトからマイグレーションファイルを作成する場合、カラムは型しか指定できないのですか?
ググってみてもドキュメント読んでもこんな感じの例しかない。
カラムごとに{:null => false, :limit => 100}みたいなオプションが使えると便利なのに。
0094nobodyさん
2009/09/19(土) 04:02:31ID:???generatorのテンプレート見れば一発でわかるが、名前と型のみ。
scaffoldのビューで必要な情報しか引数に取るようになってない。
0095nobodyさん
2009/09/19(土) 05:19:30ID:???> カラムごとに{:null => false, :limit => 100}みたいなオプションが使えると便利
全然便利じゃないと思うぞそれ
0096nobodyさん
2009/09/19(土) 10:40:16ID:???>>94
なるほど〜やっぱりダメなんですね。
>>95
便利じゃないですか?
generate実行した後に、いつもマイグレーションファイルを修正するってのはRailsの精神に反してる気がしますけど。
0098nobodyさん
2009/09/19(土) 11:11:46ID:???カラムが2〜3個しかないようなテーブルだってよくあることだし、そんな時はgenerate文で全部指定したくなる。
きめ細かく設定できるけど省略すればデフォルト値が用意されてるってのがRailsのスタイルだと思ってた。
0099nobodyさん
2009/09/19(土) 11:36:25ID:???0100nobodyさん
2009/09/19(土) 11:49:47ID:???今のジェネレータでとくに困ってないな
0101nobodyさん
2009/09/19(土) 12:01:17ID:???そんな generate が欲しいなら勝手に改造したら?
ただの rubyスクリプトだよ
で、すべての型の妥当なデフォルト値とやらを考えてみたらいいよ
0102nobodyさん
2009/09/19(土) 12:24:18ID:???0103nobodyさん
2009/09/19(土) 12:35:58ID:???0104nobodyさん
2009/09/19(土) 12:47:51ID:???0105nobodyさん
2009/09/19(土) 13:40:07ID:???そう、そんな感じ。言い方が悪かった。
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文字(デフォルト)
みたいに定義できたら便利だと思う。
0107nobodyさん
2009/09/19(土) 18:41:51ID:???DSL じゃねえっつーの
0111nobodyさん
2009/09/20(日) 01:35:43ID:???<% 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") } %>
0112nobodyさん
2009/09/20(日) 03:54:52ID:???0113nobodyさん
2009/09/20(日) 11:02:30ID:???表示するときにsimple_formatやauto_linkを使う手も。
0114nobodyさん
2009/09/20(日) 13:07:43ID:???出力時に必要な処理をすることだけど、
> そのmy_text内に<br/>を保持させるなというのは、要件なので無理です。
「<br/>を保持させるなというのは、(保持するという)要件なので無理」
という意味か。
0115nobodyさん
2009/09/21(月) 12:29:55ID:???0116nobodyさん
2009/09/21(月) 12:59:48ID:???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 とかいうメソッドの内部で
これを利用して整形する方法。
0117nobodyさん
2009/09/24(木) 18:42:36ID:???CRUDの編集画面で、データの編集した中身を確定する「送信する」ボタンのほかに、
「プレビュー」ボタンがあるイメージです。
どのように実装したものか?と…。
例えば、form_forで指定した「送信する」の他の「プレビュー」用のURLに送る方法はどうしたものでしょうか?
環境は、Ruby 1.8.7 Rails 2.3.4です。
0118nobodyさん
2009/09/24(木) 22:04:34ID:???それとも、1つのフォームに複数のアクションを付けられるんだっけ?
0119nobodyさん
2009/09/24(木) 22:27:45ID:???フォーム全部divで囲っておいて、プレビューボタンで表示
フォームはその時隠すようにする
0120117
2009/09/25(金) 08:15:42ID:???なるほど…それなら、ボタン2つつけても、プレビュー用の表示ルーチンに持ってこられますね。
>>119
Redmineとか、MediaMarkerみたいなリアルタイムでポコッとプレビューが出現する感じでしょうか?
RailsでのAjaxはまだ全然やっていないので調べてみます。
form_for内のデータをそのまま渡せるのかなーとか疑問があったり・・・
0121nobodyさん
2009/09/25(金) 17:00:44ID:???0122nobodyさん
2009/09/25(金) 20:29:53ID:???論理削除プラグインの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
http://github.com/technoweenie/acts_as_paranoid
attribute_fuは下記のものを利用しています。
giraffesoft's attribute_fu at master - GitHub
http://github.com/giraffesoft/attribute_fu/tree
0123nobodyさん
2009/09/25(金) 23:26:44ID:???インスコしたrailsが2.1.1ですた。エラーでて気づきました。
scaffoldの作法が変わってるんですね。
1.2なrailsをインストして、勉強したほうがいいですかね?
0124nobodyさん
2009/09/25(金) 23:37:55ID:???バージョンが違うと、また違うところでつまづくよ。
とりあえず、1.2のrailsをインストールして本を1冊終わらせる。
その後、最新のRailsでアプリを作っていくほうがいいと思う。
0125nobodyさん
2009/09/25(金) 23:49:30ID:???Railsの新しいの使ってんなら find のデフォルト値設定できたはずだから
1系用に苦し紛れに作られたような acts_as_paranoid はもう用無しじゃね?
と、適当にレスしてみる
0126nobodyさん
2009/09/25(金) 23:50:52ID:???0127123
2009/09/26(土) 00:17:09ID:???新しい本買うかな・・・
0128nobodyさん
2009/09/26(土) 07:37:14ID:???1.0なのか・・・
たしか、2.3対応の本が出ていたと思うので、それを買うほうがいいかもね。
「Ruby on Rails 2」ではじめるWebアプリケーション開発
ってやつ。
中身はちゃんと見てないので、良い本かは分からないけど。
0129nobodyさん
2009/09/26(土) 11:20:40ID:???「かんたんRuby on RailsでWebアプリケーション開発」
は、特定のバージョンのRailsを本に添付して、それに沿って
教えるという体裁だったな。
新しめのでも似たような本はあるかもしれない。
0130nobodyさん
2009/09/26(土) 11:23:52ID:???> 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
とか出来ないかね
0131nobodyさん
2009/09/26(土) 14:12:05ID:???0133nobodyさん
2009/09/27(日) 04:32:29ID:???今はすべてのアクセスが記録されてすぐ肥大してしまいます
一応毎日ログローテーションはしていますが、エラーだけ残せばサーバーリソースも節約できると考えました
よろしくお願いします
0134nobodyさん
2009/09/27(日) 10:01:47ID:u6jeeNBu0135nobodyさん
2009/09/27(日) 14:40:48ID:gn9S1exEどうすればよいでしょうか?質問が抽象的ですいません。
0136nobodyさん
2009/09/27(日) 14:45:56ID:???Passengerのインストール後、「以下の設定をせよ」と出てくるもの
だけでは設定終わらないよ。
0137nobodyさん
2009/09/27(日) 17:21:16ID:???抽象的になっちゃうけど、
Passengerのインストールかhttpd.confの設定が間違っているんだと思うんで
そこらへん見直すといいよ。
0138nobodyさん
2009/09/28(月) 20:03:00ID:???実ファイルとして保存するの、どっちがお好み?
0139nobodyさん
2009/09/28(月) 21:16:33ID:???個人の趣味では面倒なのでファイルで持つ。アクセス制御とか出来るように、
DocumentRootには置かずに何らかのアクション経由で提供する。
0140nobodyさん
2009/09/28(月) 23:15:21ID:???ありがとうございます。
趣味アプリなので悩みましたが、やっぱdbにしますた。
↓この方法で、初回読み込み時はDBから、2回目はtempファイルから…という
考え方がすばらしい。
ttp://d.hatena.ne.jp/sakusan_net/20080411/1207932177
0141nobodyさん
2009/09/28(月) 23:29:56ID:???ディレクトリをわけるのを忘れずにね
■ このスレッドは過去ログ倉庫に格納されています