トップページ⇒php
1001コメント455KB

【RoR】Ruby on Rails Part12

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2011/07/19(火) 13:44:46.30ID:zxrusyvr
■前
【Ruby】Ruby on Rails Part11
http://hibari.2ch.net/test/read.cgi/php/1292032736/

■参考サイト
<英語>
本家: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://twitter.com/dhh
http://www.loudthinking.com/
0871nobodyさん2011/10/12(水) 23:07:30.80ID:???
http://railsplayground.com/

http://mogok.jp/
https://www.fluxflex.com/
http://www.heroku.com/
http://cloudfoundry.com/
https://www.dotcloud.com/
http://www.engineyard.com/
http://www.slicehost.com/
http://www.rackspace.com/
http://www.linode.com/

0872nobodyさん2011/10/12(水) 23:26:45.63ID:pwKBBJlW
>>870

3.1ならな。
0873nobodyさん2011/10/13(木) 01:41:20.80ID:???
>>869
後はAWSなどのクラウドがいいな
自分の好き放題できるし

もちろん、自由には責任がついてくるのは実社会と変わらないが
0874nobodyさん2011/10/13(木) 06:45:34.95ID:???
[O] VMware Fusion で Windows XP 上で使っていた vmx ファイルを起動
http://diary.overlasting.net/2007-12-31-2.html

Fusion 3 に既存PCを移行: 紅姫竜胆
http://exacum-affine.cocolog-nifty.com/blog/2011/03/vmware-fusion-3.html
0875nobodyさん2011/10/13(木) 18:33:49.37ID:???
クラウドサービスを使おう! 11サービスを比較して、ベストクラウドサービス大賞を発表! : ギズモード・ジャパン
http://www.gizmodo.jp/2011/10/11_3.html

0876nobodyさん2011/10/13(木) 18:42:57.55ID:???
月間1200万pvのエロサイトをさくらVPS+railsで運営してるけど何か質問ある? | ○○だけど何か質問ある?beta
http://oodakedo.com/d/768864/
0877nobodyさん2011/10/14(金) 15:57:14.21ID:???
>>875
クラウドサービスって、ストレージだけじゃん。
タイトルだけ見て関係ない記事貼るなよ馬鹿。
0878nobodyさん2011/10/14(金) 19:27:25.54ID:???
Amazon.co.jp: WEB+DB PRESS 総集編 [Vol.1~60]: WEB+DB PRESS編集部 編: 本
http://www.amazon.co.jp/gp/product/4774148318

特集1 詳解Rails 3 ── 新機能から、内部構造、チュートリアル、移行方法まで
http://www.amazon.co.jp/gp/product/4774143243
0879nobodyさん2011/10/15(土) 07:08:12.63ID:???
PayPal決済|クレジットカード決済代行イプシロン株式会社
http://www.epsilon.jp/service/paypal.html
0880nobodyさん2011/10/16(日) 04:59:24.66ID:???
http://devcenter.heroku.com/articles/pgbackups
http://herocutter.heroku.com/
https://github.com/edavis10/heroku_s3_backup
https://github.com/ddollar/heroku-autoscale
https://rubygems.org/gems/heroku-resque-auto-scale
https://www.heroscale.com/
http://hirefireapp.com/
https://github.com/pcapr/dyno-blitzer
https://github.com/ddollar/heroku_backup_task
https://github.com/ddollar/heroku-accounts
https://github.com/ddollar/heroku-sql-console

0881nobodyさん2011/10/16(日) 05:03:23.51ID:???
herokuコマンドで複数アカウントを使いわける - Sooey
http://journal.sooey.com/162

Automating Heroku PG Backups @MetaSkills.net
http://metaskills.net/2011/01/03/automating-heroku-pg-backups/

Auto-scale Your Resque Workers On Heroku | Verbose Logging
http://verboselogging.com/2010/07/30/auto-scale-your-resque-workers-on-heroku

Automated Heroku Database Backups to Amazon S3, Rackspace Cloud Files, or Google Storage - Jack Chu
http://jackchu.com/automated-heroku-database-backups-to-s3
0882nobodyさん2011/10/16(日) 05:09:43.64ID:???
http://devcenter.heroku.com/articles/pgbackups http://devcenter.heroku.com/articles/taps

Herokuで定期バックアップを無料で簡単に取得する方法 - スモールスタート
http://blog.mat-aki.net/heroku-easy-free-daily-backup

HerokuでDBのデータを自動でバックアップする - アインシュタインの電話番号?
http://d.hatena.ne.jp/ruedap/20110224/ruby_heroku_database_postgresql_auto_backup_gem_cron

herokuでデータベースのバックアップ(pgbackups)を自動化する - nabehiro Try and Error
http://d.hatena.ne.jp/nabehiro/20110126/1296060550

heroku の db バックアップ周り
http://www.hsbt.org/diary/20110112.html#p01

Sooey - HerokuにPG Backupsというアドオンが加わり、H...
http://journal.sooey.com/29



0883nobodyさん2011/10/16(日) 07:00:33.55ID:???
https://github.com/techpeace/heroku_backup

http://herocutter.heroku.com/plugins/17
0884nobodyさん2011/10/16(日) 07:21:57.13ID:???
heroku-sendgrid-stats
https://github.com/hone/heroku-sendgrid-stats

bkuhlmann/heroku_plus - GitHub
https://github.com/bkuhlmann/heroku_plus

0885nobodyさん2011/10/17(月) 05:28:04.95ID:???
sqlite-manager
https://addons.mozilla.org/ja/firefox/addon/sqlite-manager/

0886nobodyさん2011/10/21(金) 03:38:11.63ID:xMCE8FuR
クックパッド、食材宅配 レシピサイトと連携 :日本経済新聞
http://www.nikkei.com/tech/news/article/g=96958A9C93819696E0E2E298858DE0E2E3E2E0E2E3E38698E0E2E2E2;da=96958A88889DE2E0E2E5EAE5E5E2E3E7E3E0E0E2E2EBE2E2E2E2E2E2


クックパッドも楽天レシピも古く思える「Foodily」という新しいレシピサイト
http://hiromikubota.tumblr.com/post/3105912846/foodily

結局クックパッドは楽天レシピに抜かれる弱肉強食WEB - invizi
http://invizi.net/subject:58
0887nobodyさん2011/10/21(金) 08:15:46.52ID:???
ここって延々とリンクを張るだけのスレなんですか?
0888nobodyさん2011/10/21(金) 09:09:10.12ID:OzRHPw76
見えなかったことにして質問とかしていいよ。
0889nobodyさん2011/10/21(金) 09:38:11.34ID:???
has_many through の中間テーブルにある条件でフィルタする時って、
:condition書いたりブロック渡したりするけど、
そこに中間テーブルに書いたscope渡せないのかな。

同じ条件を左右と真ん中に書くの嫌なんだけど。
0890nobodyさん2011/10/21(金) 16:30:35.13ID:???
>>889
merge
0891nobodyさん2011/10/21(金) 17:03:40.54ID:???
>>890
おお、まさに求めていたものです!
ありがとうございます


0892nobodyさん2011/10/21(金) 17:25:54.01ID:???
リンク貼られて流れる前でよかったな
0893nobodyさん2011/10/22(土) 12:34:35.20ID:x4TX45Mm
blogsテーブルとそれに属するentriesテーブルがあります。

通常はentriesはcreated_at降順で並べたいのですが、
blogs.status=1の時のみ、created_at昇順で並べたい、という要件があります。

素直に実装すると、entriesを表示する全ての箇所で、
if entries.blog.status = 1
entries.order('created_at DESC').each {}
else
entries.order('created_at').each {}
end

のようなコードになります。
これが結構煩わしいので、場合分けしなくてもよい方法を探しています。

entryモデルの中でscopeを定義しようとしても、
scope定義の中からblogを参照する術が無いし、
blogモデルのhas_many :entries, :orderで指定しようとしても、やはりblog.statusを参照する術がありません。

何か良い方法は無いでしょうか。
0894nobodyさん2011/10/22(土) 12:48:52.13ID:???
なんでentriesから行こうとするの?
if blog.status == 1
blog.entries.order() # order A
else
blog.entries.order() # order B
end
みたいにすれば良いのでは。

scope 使うならjoinして中で判別したら良いし
08958932011/10/22(土) 13:20:08.08ID:x4TX45Mm
>>894

ありがとうございます!こんなに早くレスを頂けるとは。。

すいません。コードの方は単純な間違いです。
いずれにしても場合分けが毎回発生するのが問題でした。

そしてscopeにjoinが使えることを初めて知りました。
これで解決できそうです。ありがとうございました。
0896nobodyさん2011/10/22(土) 15:55:55.18ID:???
routes.rbについて質問させてください

http://***.com/歴代の総理大臣
というように日本語が含まれたURLを作る場合に、

map.connect "歴代の総理大臣"
と記述して動くサーバーと、
map.connect "%E6%AD%B4%E4%BB%A3%E3%81%AE%E7%B7%8F%E7%90%86%E5%A4%A7%E8%87%A3"
とエンコードしないと動かないサーバーがあります

この辺の挙動の違いはおそらくRailsの問題ではなくてサーバー側の設定だとは思うのですが、何かアドバイスいただけると幸いです
使っているサーバーはCentOSやローカルのMacだったりとバラバラです
0897nobodyさん2011/10/22(土) 17:15:23.46ID:???
URLエンコードで統一すればいいじゃん
0898nobodyさん2011/10/22(土) 18:33:03.65ID:???
>>896
ブラウザだったりするかも
08998962011/10/22(土) 20:42:13.78ID:???
>>897
09008962011/10/22(土) 20:49:54.37ID:???
すいません途中で書き込んでしまいました
>>897
今までは非エンコードとエンコードの両方をroutes.rbに記述して対応していました
そうすることで開発用ローカル(エンコードのみ動く)と実機サーバー(非エンコードのみ動く)の両方で同じroutes.rbを使えたからです
ただ、最近借りた海外VPSでは非エンコードとエンコードのどちらも全く受け付けないので、根本的な解決を図ろうと質問しました
0901nobodyさん2011/10/23(日) 14:04:51.81ID:???
すみません。おしえてください。
ubuntu 11.10
ruby 1.9.1

gem --version
Invalid gemspec in [/var/lib/gems/1.8/specifications/json-1.6.1.gemspec]: invalid date format in specification: "2011-09-18 00:00:00.000000000Z"
Invalid gemspec in [/var/lib/gems/1.8/specifications/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00.000000000Z"

とエラーがでるのですが、、、
どうしてでしょうか?

0902nobodyさん2011/10/23(日) 15:50:11.34ID:FKiWFVH2
Rails3系の話なら、1..9.1はドキュメントに not usableと書いてあるんだが。
0903nobodyさん2011/10/23(日) 16:01:51.71ID:FKiWFVH2
https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7

rubygemsが利用する、ruby付属のYAMLパーサの問題のようなので、
お仕着せ環境で回避するには、該当specificationの日付を直接修
正してしまう(時間パートを丸ごと削除)というのがぐぐるといっぱい出
てくる。
09048962011/10/24(月) 17:34:01.20ID:???
>>896ですが少し解決しました
例えば「あ」という日本語URLをroutes.rb内でデコードする際に、
「%e3%81%82」になる環境と「%E3%81%82」 になる環境があるようです(大文字or小文字)

ruby/rails/passengerのバージョンを全く同じバージョンにして複数の環境で試してみたところ、
CentOS 5.5環境では大文字に、CentOS 6では小文字になりました

何が原因なのかは結局わかりませんが一応自己解決しました
0905nobodyさん2011/10/25(火) 12:15:29.24ID:???
質問させてください。


Usersテーブル(id, name)
Messagesテーブル(user_id, from_id, body)

があるとして簡易メッセージ機能を実装したいとします。

その際にリレーションを張るとしたら、
Messageテーブルから見たとき
user_idが送信宛先ユーザーのid、
from_idが送信元(送信者)のidとして
それぞれどのようにモデルには記述すべきでしょうか?

どちらも同じUsersテーブルにリレーションを張ることになります。

通常であれば テーブル名の単数形_idのフィールドを用意するのでしょうが
この場合は
送信宛先、送信元ともにUsersテーブルなので重複してしまいます。

0906nobodyさん2011/10/25(火) 14:15:16.47ID:???
from_idでいいじゃん
0907nobodyさん2011/10/25(火) 14:55:23.84ID:???
>>906
from_idでusersテーブルのidに繋げられますか?
0908nobodyさん2011/10/25(火) 15:09:22.88ID:???
ああDBのほうじゃなくてモデルね

class Message < ActiveRecord::Base
belongs_to :user
belongs_to :from, :class_name => 'User'
end
0909nobodyさん2011/10/25(火) 18:53:33.91ID:???
>>908
ありがとうございます
Usersモデルからはhasしなくてもいいんですか?
0910nobodyさん2011/10/25(火) 18:56:31.32ID:???
また何から何まで教えて君かよ
0911nobodyさん2011/10/25(火) 19:01:12.46ID:???
>>909
したきゃすりゃいい
そういうものだ
0912nobodyさん2011/10/25(火) 20:37:49.79ID:8ijHAbC2
Rails
自己参照結合
0913nobodyさん2011/10/26(水) 00:40:14.06ID:???
>>910みたいに煽ってる奴が一番無知なんだろうなw
0914nobodyさん2011/10/26(水) 04:03:35.48ID:V3wQJwQn
ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active Record Associations - 株式会社ウサギィwiki
http://wiki.usagee.co.jp/ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active%20Record%20Associations
自己結合(Self Joins)
0915nobodyさん2011/10/26(水) 11:03:08.59ID:???
>>913
ご本人様おつかれさまです
0916nobodyさん2011/10/26(水) 14:12:59.28ID:???
質問させてください。
以下のようなモデルを作るとします。
$ rails g scaffold Product name:string price:float url:string
$ rake db:migrate

そして、Productモデルクラスでinitializeメソッドを追加します。
class Product < ActiveRecord::Base

def initialize
@foo = 1
end

end

そうすると、scaffoldの画面で新しいProductオブジェクトを作ろうと「New Products」リンクをクリックすると、

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]

というようなエラーが出てしまいます。
ちなみにinitializeメソッドをコメントアウトすると治ります。

どうしてinitializeメソッドを追加するとこうなってしまうのでしょうか?
0917nobodyさん2011/10/26(水) 14:14:26.05ID:???
>>916
initialize メソッドは Product.new のときに呼ばれるメソッドなので、
それを上書きしちゃったらダメ
0918nobodyさん2011/10/26(水) 14:30:55.15ID:???
>>916
また何でも教えてくれクンかよ
これだから日本人はw
0919nobodyさん2011/10/26(水) 14:42:11.71ID:???
なんでも何も、勝手にメソッドを上書きして動かないとか、
どこに疑問に思う余地があるんだよ
0920nobodyさん2011/10/26(水) 20:50:00.49ID:NrqfyF3v
ふつうは元の初期化をするためのsuperをinitializeの中のどこかで呼ぶ
ことになるだろうし、AR::Baseのサブクラスなら after_initialize や after_find
というコールバックがあるな。
0921nobodyさん2011/10/27(木) 06:29:21.47ID:???
初心者には分からんかもな。
コンストラクタはinitializeです、ここで初期化しますってのをRubyの本で読んだ後に、ARでそれやったら動かないみたいなもんだから。
0922nobodyさん2011/10/27(木) 10:03:32.64ID:???
AR での問題ではなく、継承使ってる場合なら普通に発生するので、初心者だからと言って
ごまかせる話ではないような

さすがに継承も知らん、という状態だとコードはほとんど書けないだろうし
0923nobodyさん2011/10/28(金) 11:37:16.96ID:???
railsを外部委託したいんだが

SNSサイト
25テーブル 150カラム
遷移ページ 30
サーバー構築手数料こみこみ(ハードウェア代は抜きとして)


でいくらくらいが妥当かな?
0924nobodyさん2011/10/28(金) 11:49:56.41ID:???
ついに教えて君が根を上げたか
0925nobodyさん2011/10/28(金) 12:06:20.25ID:???
教えて君はバカな日本人でFA
0926nobodyさん2011/10/28(金) 12:10:48.16ID:???
>>923
作業範囲、サービス品質などによってピンキリ
というか、そんなざっくり論を展開するような顧客の案件はどこも請けてくれない

要はビジネスに向いてないってことだ
0927nobodyさん2011/10/28(金) 12:13:36.16ID:???
テーブル数とページ数で分かるわけないだろw 中身で全然違う。

こんなとこで聞かないで、素直に開発会社に話持ってって見積頼めばええやん
0928nobodyさん2011/10/28(金) 12:48:11.59ID:???
その分だと設計も全然できなそうだから、テーブル決められてる分、高くなるわな。
0929nobodyさん2011/10/28(金) 12:56:24.53ID:???
こんなとこで聞くよりまともな開発会社に聞け
まともな開発会社が分からないなら人脈使って探せ
人脈もないならビジネス失敗は確定だからさっさと手を引け
0930nobodyさん2011/10/28(金) 13:06:38.00ID:???
>>923
バーカw
0931nobodyさん2011/10/28(金) 13:07:22.03ID:???
>>923
ざっとみて50万〜750万くらいかな
0932nobodyさん2011/10/28(金) 13:19:04.29ID:???
どうせデザインもないんだろうし、サーバ構築コミで50なんてあり得ないだろw
学生バイトに頼むなら分からんでもないが
0933nobodyさん2011/10/28(金) 14:31:41.71ID:F7F0tBhs
>>923
Grouptube (グループチューブ) ソーシャルネットワーキングサイトのASPサービス
http://grouptube.jp/
月額たったの840円!

http://sample.grouptube.jp/
0934nobodyさん2011/10/28(金) 14:38:28.27ID:???
>>923
http://gigazine.net/news/20110408_facebook_opencompute/

Facebook、ユーザー数が8億人を突破したと発表 - ITmedia ニュース
http://www.itmedia.co.jp/news/articles/1109/26/news030.html

月間アクティブユーザー数3.8億人(Inside Facebook 2/1)
サーバ台数6万〜10万台(推定)
1秒5000万リクエスト。
http://www.slideshare.net/naoto111/facebook-4732201
0935nobodyさん2011/10/28(金) 21:31:22.08ID:???
そこそこ時間のかかるバッチ処理中に全てのリクエストが工事中ページに向かうようにしたいのですが、
.htaccess 書き換え以外に rails で完結する方法はありませんでしょうか?
0936nobodyさん2011/10/28(金) 21:55:14.23ID:???
ApplicationControllerにbefore_filter入れてどっかにリダイレクトか、routes書き換え。
ほんとはApacheの設定とかで飛ばした方が良いけど。
0937nobodyさん2011/10/28(金) 22:21:48.09ID:???
>>936
ありがとうございます。
routes 書き換えは routes.rb をそのまま置き換え/書き換えという認識であっていますでしょうか?
0938nobodyさん2011/10/28(金) 23:17:39.62ID:???
先頭で全部のアクセスをどっかに飛ばして、次の行でreturnかなと思ったけど、今のroutesだとあれだから、やっぱりフィルタが良いかも。
0939nobodyさん2011/10/29(土) 12:46:03.56ID:???
命名規則についての質問

�@ユーザー情報のメインテーブル(Mains)
�Aユーザー情報のサブテーブル(Subs)
�Bユーザーの投稿ポストテーブル(Posts)
の3つがあるとして

�Aサブテーブル(Subs)のNameカラムにユーザー名が格納。


その場合 Subsのmain_idがMainsのidに繋がって
モデルは↓
Mains has_one Subs
Subs belongs_to Mains
になると思うんだけど

Postsからユーザー名(�ASubsのName)を引っ張り出すときは

Postsのsub_idとSubsのidを繋げばいいですか?
それとも
Postsのsub_idとSubsのmain_idを繋ぐべき?

結局のところ
Subsの id = main_id
だから、どちらでもいいんだろうけど
どういった作り方が普通なのか気になります。
0940nobodyさん2011/10/29(土) 13:25:01.65ID:???
そのメーブル名は良くないけど、それはおいといて。

ショートカットという意味でPostにsub_id持つのは構わないけど、あまりやらないかな。
Postにはmain_id持たせてるから、そこから辿る。それだとこんな感じ。
Post.where(なんちゃら).includes(main: :sub)

で、個々のpostから名前をviewとかで引くなら、
post.main.sub.name
みたいになって長いから、Mainで:nameをdelegateする。
delegate :name, to: :sub
そうすると
post.main.name
と書ける。
もっと短くしたければ、またdelegateするなりメソッド足して工夫して。

上とは別に、省エネするなら、Postにattr_accessor で:name 足して、find_by_sql なりで引いて来る。この場合はincludes()しなくて良くなる。
post.name
使えるはず。


0941nobodyさん2011/10/29(土) 13:28:05.54ID:???
とことん教えて君は文章に特徴があるからすぐにわかるな
0942nobodyさん2011/10/29(土) 13:33:58.49ID:???
>>941
何と戦ってるんだ?
現実世界で嫌なことあったか?
0943nobodyさん2011/10/29(土) 13:43:48.85ID:???
>>940
細かく説明してくださって
ありがとうございました。
やってみます。
0944nobodyさん2011/10/29(土) 13:57:31.80ID:???
>>942
今日もおつかれさま!
0945nobodyさん2011/10/29(土) 14:27:29.35ID:???
>>942
ここはRails全般のスレ。
質問に回答するもしないも見ている人達次第。

そいつは誰にも相手にされてないようだし、
罵倒するレスしかつけられない生産性のない可哀想な存在だから
相手にしないほうがいい。


0946nobodyさん2011/10/29(土) 15:26:02.35ID:???
http://www.akitaonrails.com/2007/12/12/rolling-with-rails-2-0-the-first-full-tutorial
↑これを参考に作ってます。
(実際はRails 3.1.1を使用。)

Users has_many Postsな状態で、
/users/123/posts/456
を
/user/hiroyuki/2011-10-29
みたいにしたいと思ってます。
match 'user/:user_name/:year-:month-:date' => 'posts#show'
routes.rbとかをがっつりいじればいくらでもできそうだけれど、
もっとスマートなやり方ありませんか?
0947nobodyさん2011/10/29(土) 15:36:34.58ID:???
年月日は分けない方が良い
0948nobodyさん2011/10/29(土) 16:01:58.56ID:???
>>946
教えて君は何でも教えて教えてだな
身の程をわきまえろ
小学校からやり直せ
0949nobodyさん2011/10/29(土) 16:56:28.92ID:???
>>945
おいおい あまりイジめてやるなw 他の人みたくスルーが一番
0950nobodyさん2011/10/29(土) 16:58:34.89ID:???
>>946
routes.rb はがっつりいじるもの
何でも resources でやろうとするのは何でも scaffold でやろうとするようなもん
0951nobodyさん2011/10/29(土) 17:43:50.36ID:???
>>946
仮に resources などで簡潔に書きたいと思ってるなら、Rails の敷いたレールの上を
走るようにすればいい

今回のようにURL設計でレールから外れようとしているのに、それでも簡潔さを求める
のはRailsの根本思想からはありえないことです

ある意味、Railsは宗教です
DB設計にせよURL設計にせよMVCにせよ、「こうするべき」という教義を持っており、
教義に従う人にだけメリットを与えます
そこから外れたいなら相応の労力が必要なことに文句を言ってはいけません
0952nobodyさん2011/10/29(土) 18:06:24.81ID:I8tdw7a2
to_param なんていうメソッドもあるけどね。
0953nobodyさん2011/10/29(土) 18:10:32.06ID:???
まあ、多少railから外れたこともだいたいプラグインがあるけどな。
0954nobodyさん2011/10/29(土) 20:18:28.00ID:???
>>951
横だけど、なんだか色々合点がいった。
ちょっと外れようとすると色々面倒なのはある意味じゃ仕様なんですね。
大したこだわりじゃないなら素直にレールに乗ってたほうが結果的に得しそうだ。
09559462011/10/30(日) 02:00:21.85ID:???
>>947
いろいろありまして。

>>948
お元気そうで何よりです。

>>950
なるほど。
scaffoldはだいたい目に見えるからいじりやすいんですが、
routesの方は見えないところで動いてる部分が多くて。

09569462011/10/30(日) 02:02:32.00ID:???
>>951
すごいわかりやすい!
すると、今回の場合は自分で自分用のrailを敷き直す覚悟が必要そうですね……。
サンスコ、頑張ってみまする。

>>952
おお、to_paramよさそうですね。
validates_format_ofと組み合わせて使おうと思います。
0957nobodyさん2011/10/30(日) 10:18:03.46ID:???
レールには従ってもいいし、従わなくてもいい。
分からなければ従っておいた方がいい。

0958nobodyさん2011/10/30(日) 22:29:28.09ID:???
>>955
> routesの方は見えないところで動いてる部分が多くて。
だったらテストをしっかり書こうよ

>>956
> すると、今回の場合は自分で自分用のrailを敷き直す覚悟が必要そうですね……。
そんな覚悟を固めるより、設計に口出す方が楽だよ
少なくともRails開発者が押し付ける教義は非常に多くの優秀な人たちののレビューを
通ってきているわけだから妥当性は相応に強い
0959nobodyさん2011/10/31(月) 00:58:32.76ID:???
逸脱することによるメリットがどれほどのものか?ってのをよく考えればいいわけか。
0960nobodyさん2011/10/31(月) 18:03:43.50ID:???
http://rors.org/2010/08/15/auto_html.html
dejan/auto_html - GitHub
https://github.com/dejan/auto_html

auto_link("Go to http://www.rubyonrails.org and say hello to [email protected]")
# => "Go to <a href=\"http://www.rubyonrails.org\">http://www.rubyonrails.org<;/a> and
# say hello to <a href=\"mailto:[email protected]\">[email protected]</a>"
http://apidock.com/rails/ActionView/Helpers/TextHelper/auto_link
09619462011/11/01(火) 03:34:44.77ID:???
>>958
趣味で作ってるだけなので、設計者=実装者です。


とりあえずrailに乗っかった形で一度完成させてから、あれこれいじる事にしました。
0962nobodyさん2011/11/01(火) 12:03:31.55ID:???
application.js.coffee.erbとか、拡張子長すぎだろ
それにjsファイルの中でerbを使うとかうぜぇ!
0963nobodyさん2011/11/01(火) 12:05:00.39ID:???
使わなければいいだけの話
0964nobodyさん2011/11/01(火) 12:14:37.64ID:???
ActiveRecord で悲観的ロックを使おうと考えています。
ロックがかかっていなければ更新処理→検索処理、
かかっている場合は更新が終わるのをまって(そして自身の更新はスキップして)検索処理としたいのですが、
ロックがかかっているかどうか調べるにはどうしたらよいのでしょうか?

if ( ロック中か?) do
# ロック解除されるまで待つ/更新処理はしない
LockTable.find(1, lock => true).lock! false
else
locked = LockTable.find(1, :lock => true)
# 幾つかのモデルにまたがる更新処理....
locked.lock! false
end

# モデル内容の検索処理...
0965nobodyさん2011/11/01(火) 14:15:30.60ID:???
>>962
.js は省けた気がする
あとerbにするのは確かにうぜえので変数的なものは
headタグ埋め込んで参照するようにしてるわ。
0966nobodyさん2011/11/01(火) 15:25:40.80ID:???
DBからのレスポンス待ちになっているのが lockによるものなのか、
単に負荷で遅くなっているか等を識別する手段は無かったと思う(DBレベルで)。

ただ、Oracleなんかは 読取lockの待ち時間を設定できて、
その時間を超えた場合は、例外を戻すように出来るので、
それをRails側でキャッチしてゴニョゴニョすることは出来るかも。
for update nowait なら、全く待たずに例外投げられるので
それを利用して、ロック中である、と識別させる手もある。
lock("for update nowait") と書けばいい。

ただMySQLは、v4系列までは読取lockの待ち時間は設定できないし、
nowaitオプションもなかった気がする。単にグローバルな「待ち時間」で
制御するしかないけど、これだとサーバが負荷のせいでレスポンス待ちなのか、
lockのせいなのか等の識別は出来ない。v5はどうだか分からない。
0967nobodyさん2011/11/01(火) 15:58:03.53ID:???
>>966
回答ありがとうございます。
なるほど、ここら辺はDB依存になる部分なんですね。
バックエンドがMySQLでして、グローバルなオプションの変更はちょっと影響範囲の判断がつかないので
今回は違う方法を考えてみます。

それほどクリティカルな処理の部分ではないのと、どちらにしろロック待ちはするということで
前回の更新処理時刻+n秒以内なら更新処理スキップみたいな感じでいこうと思います。
0968nobodyさん2011/11/02(水) 01:11:54.63ID:???
>>967
教えて君はとことん教えてだな
小学校からやり直してこい
0969nobodyさん2011/11/02(水) 01:28:27.52ID:???
本人、乙
0970nobodyさん2011/11/02(水) 08:38:04.18ID:???
教えて君の文章には特徴があるから
すぐ分かるんだな
レス数が950を超えています。1000を超えると書き込みができなくなります。