【RoR】Ruby on Rails Part14
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/02/18(土) 00:34:00.31ID:9HHBFqZRhttp://kohada.2ch.net/test/read.cgi/php/1320393984/
■参考サイト
<英語>
本家:http://rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
http://ruby-toolbox.com/
http://rubygems.org/
http://agilewebdevelopment.com/plugins/top_rated
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
http://find.2ch.net/?STR=heroku&COUNT=10&TYPE=TITLE&BBS=ALL
0360nobodyさん
2012/04/25(水) 08:42:39.76ID:???file_columnでなくRailsかrubyのレベルで話ができないのか?
>rails2まではサニタイズのメソッドを
>filename.gsub!(/[^\w\.\-\+_]/,"_")
>に変えることによって日本語ファイルを扱えましたが、
この処理が日本語を消しているだろ
1.8系はKCODEとencoding一致していれば\wが全角文字に一致するから消されないが
1.9系は\wが全角文字にマッチしないからどうやっても消える(Rubyの仕様が変わった)
1.8でも消えるならKCODEとfilenameのencodingを一致させる必要がある
0361nobodyさん
2012/04/25(水) 09:05:43.19ID:???というか何がどうサニタイズなのか。
0363nobodyさん
2012/04/25(水) 10:50:55.43ID:???>この処理が日本語を消しているだろ
これはわかってますね。
>1.8でも消えるならKCODEとfilenameのencodingを一致させる必要がある
1.8でも消えたんで、railsのバーションなのは間違いないと思います。
params[:テーブル名][:ファイルカラム名].original_filename.force_encoding("UTF-8")でUTF-8に強制的に変換したあと、paramsのハッシュでインスタンス化するんですけど、そこで必ず日本語がアンダースコアになってしまします。成功例もないし、私のちからではお手上げかも。
0364nobodyさん
2012/04/25(水) 11:06:50.70ID:???メソッド自体、サニタイズって名前のものなんですよね。file_columnは通常日本語のファイル名はハイフン化されてしまうんですが。
そのハイフン化される部分filename.gsub!(/[^a-zA-Z0-9\.\-\+_]/,"_")を
filename.gsub!(/[^\w\.\-\+_]/,"_") に変えることで対処することができました。だけど、
rubyがエンコードに
ついてのクラスを加えたことで、railsもそれに対応しました。それによって
file_columnも以前のようにコートの一部をfilename.gsub!(/[^\w\.\-\+_]/,"_") に修正するだけでは、日本語ファイルを扱えなくなりました。そんな感じです。
0365nobodyさん
2012/04/25(水) 12:33:33.10ID:???まず1.8でやっているのか?
force_encodingって1.9にしかないと思うが
1.9の場合、\wは日本語にマッチしないから
そのコードだと日本語消えるぞ
1.8の場合、$KCODEはuを指定している?
指定してないと\wは日本語にマッチしないから日本語消えるぞ
p params[:テーブル名][:ファイルカラム名].original_filename
とかで変換前にどうなってるのか見たほうがいいんじゃねーの
0366nobodyさん
2012/04/25(水) 16:44:08.18ID:???というか、updateメソッドちょっと変えるだけだし、全然難しくないと思う。
それもできないとかはないよね…さすがに
0367nobodyさん
2012/04/25(水) 17:09:22.81ID:???0368nobodyさん
2012/04/25(水) 18:29:12.54ID:???filename.gsub!(/[^[:word:]\.\-\+_]/,"_")でやりましたけど、日本語がアンダーバーにされます。もし、それで日本語ファイルになってるなら、詳しく教えてくれませんか。当方の環境はruby 1.9.2 rails3.0.9です。
0369nobodyさん
2012/04/25(水) 19:30:01.23ID:???サーバ再起動してないんじゃね?
ruby 1.9.2-p312
rails 3.0.10
0370nobodyさん
2012/04/25(水) 19:33:52.92ID:???3.0.9 でも変わらないはず
0371nobodyさん
2012/04/25(水) 19:57:39.76ID:???上でまちがったこといってました。訂正しておきます。railsではなく、rubyのバージョン依存ですね。
filename.gsub!(/[^\w\.\-\+_]/,"_")変えて でruby1.8.7で日本語をファイル名をあつかえました。だけど、ruby1.9.2の場合以前できません。
すいませんが、コードを変えてのはfilename.gsub!(/[^[:word:]\.\-\+_]/,"_")まんまですか?違ってたらおしえてください。
0373nobodyさん
2012/04/25(水) 22:41:58.15ID:???3.1.0に変えると環境が結構変わりそうだったし、エラーもでたので
3.0.9と1.9.2で強引にできました。
filename = filename.force_encoding("UTF-8")
filename.gsub!(/[^[:word:]()\.\-\+_]/,"_")
サニタイズする前に強制的にUTF8にします。そのあと、先ほどの正規表現で
日本語を表すことができました。()もつけたけど。
ありがとうございます。
0374nobodyさん
2012/04/26(木) 20:35:01.07ID:???指定セルへのデータのセットやら書式の指定やらの仕方がよくわからん。
全くの白紙からのデータの一括セットはともかく指定セルだけ書き換えたいとか、どうするんだ?
データを表組みで出力したセル領域を罫線で装飾しようとしたら、
別の罫線パターンを持つFormatオブジェクトをいくつも作って、
表内のセル位置に合わせて選択しながらセットするのか?
Spreadsheetの導入の参考にしたサイトだと、データを1次元配列にして
rowに対してconcatして行高さを調整して終わりで、
細かい操作については殆ど触れてないか、わざわざ専用のFormat派生クラスを作って
たった1個のセルにセットして終わりだったし。
せめてテンプレート用のxlsファイルを読み込んで、新規シートに対して
帳票ヘッダ部は全項目コピペして一部文字列を書き換えたり
データ行は1行単位でフォーマットをコピーしてデータを埋め込んだりしたい。
VBAみたいにセル領域に対し一括して罫線や書式などをセット出来なくても、
テンプレートが使えれば随分楽になるんだけど。
要は帳票をExcel2000までで扱えるxlsファイルとして手軽に作りたいのだけど、
別のプラグインを探した方がいい?
0375nobodyさん
2012/04/26(木) 20:44:08.09ID:???正直、Windowsサーバを立ててC#でそこだけ書いた方がいい。
0376nobodyさん
2012/04/26(木) 23:29:40.34ID:???Microsoftも明確に非推奨と謳っている
0377nobodyさん
2012/04/26(木) 23:43:13.78ID:???0378nobodyさん
2012/04/27(金) 00:13:52.95ID:???0379nobodyさん
2012/04/27(金) 00:17:25.23ID:???PHPのExcelライブラリはRubyのよりずっとやれることが多かったはず
0381nobodyさん
2012/04/27(金) 09:17:15.54ID:???0382nobodyさん
2012/04/27(金) 09:24:10.87ID:???0383nobodyさん
2012/04/27(金) 09:43:42.29ID:???テンプレートファイル読み込んで指定セルに値を入れたり、
全セルなめて文字列置き換えくらいなら、
spreadsheetでできます。
ただ、テンプレートのシートをコピーして1ファイル内に何枚も追加するの
だけができなくて、そこだけ Apache POI HSSF 使ってJavaでプログラムして
system()呼び出しで実行するようにしたこともあります。
(rjbではなく)
0384nobodyさん
2012/04/27(金) 20:43:35.72ID:???そういや昔、Fedora上で動かすwebアプリの計算処理部分が
WinのDLLとしてしか供給されてなくて、Wineを噛ませて使った事があったなぁ。
0385nobodyさん
2012/04/30(月) 05:29:42.90ID:a7YpdowlPythonAnywhere is a Python development and hosting environment
that displays in your web browser and
runs on our servers.
http://www.pythonanywhere.com/
0386nobodyさん
2012/04/30(月) 13:00:48.59ID:???http://www.ruby.or.jp/ja/tech/development/web_application/110_other_links.html
0387nobodyさん
2012/05/01(火) 03:38:56.40ID:???ソート処理は、自分で書かなきゃいけないんでしょうか?
0388nobodyさん
2012/05/01(火) 08:14:30.09ID:???ソートなんて簡単でしょ。余程複雑でなければ。
シンプルなものなら自分で書くと言っても20文字くらい足すだけだし
0389nobodyさん
2012/05/01(火) 08:58:03.15ID:???0390nobodyさん
2012/05/01(火) 17:23:42.20ID:Kul3M1xg0391nobodyさん
2012/05/03(木) 19:53:10.57ID:H5PydUheそして2006年11月、出会ったのがScalaです。
http://logsoku.com/thread/engawa.2ch.net/poverty/1335970660/
0392nobodyさん
2012/05/03(木) 23:49:29.40ID:???0393nobodyさん
2012/05/03(木) 23:57:40.64ID:H5PydUhehttp://www.youtube.com/watch?v=VOFTop3AMZ8
0394nobodyさん
2012/05/05(土) 02:36:41.74ID:???curl -L get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm user all
rvm requirements
curl -L get.rvm.io | bash -s stable --rails
これでrubyをインストールしました。
which ruby
/home/username/.rvm/bin/ruby
ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
こんな具合です。続いてgemを
gem install pg -- --with-pg-dir=/usr/local/pgsql/
gem install rails
(中略)
> Successfully installed rails-3.2.3
このようなログがざざっと出て完了します。しかしここで
rails -v
> プログラム 'rails' はまだインストールされていません。
> 次のように入力することでインストールできます:sudo apt-get install rails
などとなってしまい、railsが使えません。
長々とすみません。私は何を間違えているのでしょうか?
0395nobodyさん
2012/05/05(土) 03:37:36.18ID:???たぶん、rvmの.bashrcへの登録が機能してないとかじゃないかな?
途中でシェルを再起動したとか
rvmはデフォルトだとbash_loginか何かに書き込まれるんだけどそれをうまく読み込めてないんじゃないかな
0396nobodyさん
2012/05/05(土) 12:51:24.07ID:???.bash_loginに
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
などと書いてあるのを知らず。
うっかり.bashrcにsource "~/.rvm/scripts/rvm"などと書いていましたが、これだとうまく動きませんで。
削除しました。私が余計なことをしていました。
結果、
~$ rails -v
Rails 3.2.3
うまく出来ました。ご推察の通りです。ありがとうございます。
0397nobodyさん
2012/05/05(土) 16:51:36.13ID:???普通は外部キー制約は自分で行うものなんでしょうか?
それともrailsのレールに乗っていれば、そのような制約についてはrails側でうまくやってくれるから
特にそれらを設定する必要はないのでしょうか?
0398nobodyさん
2012/05/05(土) 22:17:39.65ID:???migrationファイルに追記する必要がある
Modelレベルでの外部キー制約ライクなことをするのは
validates_existenceプラグインで出来る
(本職のDB屋に怒られると思うケド、まぁ何も無いよりはマシ)
0399nobodyさん
2012/05/06(日) 01:50:34.26ID:???:dependent => :destroy
:dependent => :delete_all
:dependent => :nullify
http://www.ark-web.jp/sandbox/wiki/390.html
0400nobodyさん
2012/05/06(日) 01:51:11.58ID:???http://aligach.net/diary/20110224.html
0401nobodyさん
2012/05/08(火) 18:48:01.99ID:???ここに書いてある
PostgresSQLite
ってのは、
PostgreSQLとSQLiteと、両方が使えるの意味で良いのかな・・・?
postgreSQLiteってググるとなぜか引っかかるんだが、何か関係あるの?
(PostgresSQLiteでなくてね)
0402nobodyさん
2012/05/08(火) 19:50:09.84ID:???多分、Markdownとかで
- Postgres
- SQLite
って書いてたのが、何かの拍子に消しすぎただけ
0403nobodyさん
2012/05/08(火) 20:06:55.69ID:???グーグル検索なら、ある程度の表記のゆれを吸収してくれるからに過ぎない
0405あ
2012/05/09(水) 16:42:20.48ID:PBThpqdDhttps://postgres.heroku.com/blog/past/2012/5/3/crane_the_new_50_per_month_production_database_/
Crane
400 MB Cache
$ 50 / mo
Kappa
800 MB Cache
$ 100 / mo
https://postgres.heroku.com/pricing
0406nobodyさん
2012/05/09(水) 19:42:10.39ID:???超優良コンテンツが集まってたのに。。。
0407nobodyさん
2012/05/09(水) 19:43:11.43ID:LQK4Qanf0408nobodyさん
2012/05/10(木) 13:34:25.15ID:kGW35EI0来訪したお客様がどこ経由でアクセスしたのかを記録しておくためにgetのパラメーターとかで
http://hogehoge.jp/?type=qr_code
とか経由してきた媒体を付けるのがありますが
これって、一般的な名称ってあるのでしょうか?
どこでも一定の需要がありそうなので、plug-inにして公開しようかと思っているのですが
0409nobodyさん
2012/05/10(木) 16:24:15.33ID:???match 'foo(/:a(/:b))' => 'foo#bar', :as => :foo, :defaults => { :a => 'a', :b => 'b' }
のときに
foo_path({:a => 'a', :b => 'c'})
をすると
/foo/a/c
こんなpathになってほしいのに、
/foo?b=c
こんなpathになってしまいます。
scope 'foo(/:a(/:b(.:format)))', :to => 'foo#bar' do
match nil, :defaults => { :a => 'a', :b => 'b' }
match nil, :as => :foo
end
こんな感じに:defaultsと:asを分けると解決しましたが、
もっといい方法は無いでしょうか?
0411408
2012/05/10(木) 17:04:35.23ID:kGW35EI0アリガトウゴザイマス
出来上がりましたらそのうち貼り付けるので
程々に期待しないで待って下さい
0412nobodyさん
2012/05/10(木) 18:50:39.64ID:???match 'foo/:a(/:b)' => 'foo#bar', :as => :foo, :defaults => { :b => 'b' }
match 'foo' => 'foo#bar
0414nobodyさん
2012/05/10(木) 20:35:22.33ID:???レスありがとうございます。
:defaultsと一致したパラメーターが省略されるのは良いのですが、
/foo?b=c
でアクセスしても:defaultsの方が優先されて
params[:b]には'b'が入ってしまうんですよね。
routes.rbに、こんな感じに書くんですか?
match 'foo/:a/:b(/:c)' => 'foo#bar', :defaults => { :c => 'c' }, :as => :foo
match 'foo/:a(/:b)' => 'foo#bar', :defaults => { :c => 'c', :b => 'b' }
match 'foo' => 'foo#bar', :defaults => { :c => 'c', :b => 'b', :a => 'a' }
しかし、その書き方だとパラメータの数が多い時に書く数が多くなりませんか?
match 'foo(/:a(/:b))' => 'foo#bar', :defaults => { :a => 'a', :b => 'b' }
match 'foo(/:a(/:b))' => 'foo#bar', :as => :foo
こんな感じに:defaultsと:asを分けたほうが綺麗に書けるような気がします。
scope 'foo(/:a(/:b))', :to => 'foo#bar' do
match nil, :defaults => { :a => 'a', :b => 'b' }
match nil, :as => :foo
end
scopeを使えば共通する部分をまとめて書けて更に綺麗に書けるんですが、
これより、いい書き方を知りませんか?
0415nobodyさん
2012/05/10(木) 21:38:14.01ID:???link_to 'foo', "/foo/#{a}/#{b}"
0417nobodyさん
2012/05/11(金) 06:33:19.56ID:???link_to 'foo', "/foo/#{a}/#{b}"
end
0418nobodyさん
2012/05/11(金) 08:46:26.02ID:I34Bn/OV0419あ
2012/05/12(土) 02:58:45.70ID:N6Nn+dZ50420nobodyさん
2012/05/13(日) 05:26:32.18ID:Z0cLNqKBhttp://jobs.rubynow.com/
0421nobodyさん
2012/05/13(日) 07:18:31.68ID:???ブログを作ってるんですが、カテゴリ一覧を取得するには
モデルの呼び出し部分はどう書けばいいのでしょうか?
postsテーブルはtitle body categoryがstringに設定されてます。
categoryの値が重複しないもののみを取得したいんですが
Post.whereとかで、どう指定すればいいのかわかりません
0422nobodyさん
2012/05/13(日) 08:06:55.00ID:???0423nobodyさん
2012/05/13(日) 10:37:28.20ID:Z0cLNqKB自己参照結合
自己結合(Self Joins)
http://wiki.usagee.co.jp/ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active%20Record%20Associations#m6658a2f
Self-referential has_many :through associations
http://blog.hasmanythrough.com/2007/10/30/self-referential-has-many-through
http://blog.hasmanythrough.com/2006/4/21/self-referential-through
http://japan.zdnet.com/blog/yoshimi/2007/11/22/entry_27016437/
0424nobodyさん
2012/05/13(日) 12:09:02.21ID:SS18YzByCategoryを別テーブルにしてしまうのが綺麗な気はする。
0425nobodyさん
2012/05/14(月) 23:10:24.92ID:???0426nobodyさん
2012/05/15(火) 23:23:25.85ID:???Deviseベースでユーザー同士が簡易にプライベートメッセージをやりとり出来るプラグインってありますか?
簡単に導入できるタイプのもので。
解説サイトとかあれば助かります。
0427nobodyさん
2012/05/16(水) 00:01:08.02ID:???Deviseとメッセージは別ものだから、依存しない方がいい。
ググったらこんなのあったけど、使った事はない。
https://github.com/jongilbraith/simple-private-messages
使い方も書いてある。
0428nobodyさん
2012/05/16(水) 07:50:30.07ID:???1.PostFixをインストールし、mail コマンドで外部への送信はできた
2.ActionMailerを使って送信しようとするとそのまま60秒応答を返さなくなりTimeoutが発生
アドバイスお願いしますorz
0429nobodyさん
2012/05/16(水) 09:38:42.63ID:???0430nobodyさん
2012/05/17(木) 00:37:52.66ID:8KJ6nyqa0431nobodyさん
2012/05/17(木) 09:52:48.37ID:8KJ6nyqahttp://d.hatena.ne.jp/suginoy/20120516/p1
0432nobodyさん
2012/05/17(木) 11:07:18.46ID:8KJ6nyqa大規模な分散型システムを効率良く運用するため、
現在はフロントエンド部分にRailsのレイヤを残したまま
バックエンドのロジック部分はサービスとして分離しており、OpenJDKをランタイムにしているという。
http://www.atmarkit.co.jp/fsmart/articles/twitter_event01/01.html
0434nobodyさん
2012/05/17(木) 13:02:21.51ID:???企業ではどのようなサーバ環境でRORを動かしてるのですか?
apache+cgiがやっぱり王道でしょうか?
0435nobodyさん
2012/05/17(木) 13:14:42.66ID:???サーバ性能とサービスへのアクセス、メンテ等のし易さとかにもよるけど、
Apache+Passenger(or unicorn)
nginx+unicorn
nginx+Apache+Passenger(or unicorn)
とかその辺
0436nobodyさん
2012/05/17(木) 15:04:47.07ID:???ちょっと検討してみます
0437nobodyさん
2012/05/17(木) 16:30:32.93ID:???学生さんかな
0438nobodyさん
2012/05/17(木) 21:52:09.83ID:???0439nobodyさん
2012/05/17(木) 22:38:49.71ID:???0440nobodyさん
2012/05/17(木) 23:15:12.23ID:???FastCGIとか使ってた時代もあったけど、mongrelが出て来て一気にデプロイが楽になった
その後Passengerが登場してさらに楽になった感じ
趣味でやるんならPassengerが一番楽でいいんじゃないかな
負荷に合わせてプロセスを勝手に増減してくれる
0441nobodyさん
2012/05/18(金) 02:46:38.12ID:???passengerもいいんだけど、webサーバへの依存度が高いのが気に要らない
結合は疎のままでもおkなunicornラヴ
0442nobodyさん
2012/05/18(金) 03:28:07.46ID:HkOwZr1hhttp://www.growthwk.com/article/13561401.html
0443nobodyさん
2012/05/18(金) 03:30:41.10ID:HkOwZr1hTwitterが、Ruby on RailsからJavaVMへ移行する理由 − Publickey
http://b.hatena.ne.jp/entry/www.publickey1.jp/blog/11/twitterruby_on_railsjavavm.html
0444nobodyさん
2012/05/18(金) 03:49:55.52ID:???http://el.jibun.atmarkit.co.jp/rails/2012/03/ruby-3574.html
Rails Hub情報局: Cloud FoundryがRuby「で」作られたクラウドだった件
http://el.jibun.atmarkit.co.jp/rails/2011/06/cloud.html
0445nobodyさん
2012/05/18(金) 03:51:50.31ID:???1つは、JavaVMが備えていた優れた性能や機能です。
Twitterが、これまで利用していたRuby on RailsからJavaVMへと移行することを表明したこと
http://www.publickey1.jp/blog/11/java_4.html
0446nobodyさん
2012/05/18(金) 04:01:19.46ID:???PHPで書いた既存のDB周りのコードは今後も使いまわす。
既存DBのインターフェースを、PHPでRESTfulにWebAPI化してバックエンドとし、
フロントエンドであるRailsからActiveResourceでアクセス。
http://d.hatena.ne.jp/kazuk_i/20090117/1232191936
naoyaのはてなダイアリー - 疎結合のための Web API
http://naoya.g.hatena.ne.jp/naoya/20060509/1147170968
0447nobodyさん
2012/05/18(金) 11:09:28.87ID:???rails2.x系とrails3.x系って全然違いますか?
やっぱり企業ではrails3.xで動いてますか?
0448nobodyさん
2012/05/18(金) 11:24:03.52ID:???別にRailsで開発してるとかじゃなくて、Redmineだけツールとして使いたい企業は、Rails2系しか入れてないと思う。
趣味であっても今から開発するならRails3にしとけ。
Rails3も、リリースからもう2年近く経ってる。
Rails2と3の違いはググれ。
古いサービスで予算なくて(もしくはその労力が惜しくて)リプレースできず、Rails1.xのまま動いてるとこもある。
0450nobodyさん
2012/05/18(金) 16:08:51.96ID:???これを読むと
match ':controller(/:action(/:id))(.:format)'
という書き方はRails3では非推奨ということですが
何故非推奨となったのでしょうか?
0451nobodyさん
2012/05/18(金) 16:29:53.25ID:???0452nobodyさん
2012/05/18(金) 16:32:24.95ID:???とりあえず新物好きなので3.2から勉強始めたんですがジュンク堂入っても3.2の参考本がないですね
いつ出るのか
0453nobodyさん
2012/05/18(金) 16:48:52.37ID:???海外サイトで学ぶのが今のところ一番良い。
どうしても日本語でなければダメなら、電子書籍にすること。
でも日本語だけだと、どうせつまづくので、基本英語で。
0454nobodyさん
2012/05/18(金) 16:50:23.37ID:???一応「基礎Ruby on Rails」って本の改訂版は3.2に対応しているみたいだよ
他にもあるかは知らない
0455nobodyさん
2012/05/18(金) 16:50:39.26ID:???0457nobodyさん
2012/05/18(金) 20:32:55.52ID:x+BIo9WE0458nobodyさん
2012/05/19(土) 07:19:25.87ID:???そういえば今週末はrails4zombiesのところがむりょうになってるらしいね
0459nobodyさん
2012/05/19(土) 10:46:01.79ID:???mass assignの挙動が変更されたのをバグだと言ってる。
■ このスレッドは過去ログ倉庫に格納されています