【RoR】Ruby on Rails Part11
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/12/11(土) 10:58:56ID:???【Ruby】Ruby on Rails Part10
http://hibari.2ch.net/test/read.cgi/php/1282991262/
■参考サイト
<英語>
本家:http://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/
http://twitter.com/dhh
http://www.loudthinking.com/
0204nobodyさん
2011/01/17(月) 23:48:34ID:???mysql2はdevkitが必要だと思うが入れたのか?
前にも書いたし勝手に解決してないことにするなよ。
0205nobodyさん
2011/01/18(火) 19:11:55ID:???データに関してはRDBに丸投げですか?
0206nobodyさん
2011/01/20(木) 01:29:44ID:???0207nobodyさん
2011/01/20(木) 02:19:35ID:???0208nobodyさん
2011/01/20(木) 17:05:05ID:???→ Tomcat+javaにしてみた → これが正解だと思った
0209nobodyさん
2011/01/20(木) 17:16:00ID:SSKhJITEhttp://www.amazon.co.jp/gp/product/4873113202
0210nobodyさん
2011/01/20(木) 17:16:13ID:???これに相当するのはRailsで言えばPassenger。
多少でも分かっていれば、こんなバカな間違いはしない。
またいつも荒らしてる勉強会の出席者?
0211nobodyさん
2011/01/20(木) 17:30:50ID:???0212nobodyさん
2011/01/20(木) 17:57:49ID:???0213nobodyさん
2011/01/21(金) 04:07:57ID:???0214nobodyさん
2011/01/21(金) 07:36:26ID:???0215nobodyさん
2011/01/21(金) 08:33:12ID:???0216nobodyさん
2011/01/21(金) 12:46:05ID:???0217nobodyさん
2011/01/22(土) 03:04:07ID:a6Nv7f5X0218nobodyさん
2011/01/23(日) 12:04:05ID:???低脳ばかりだからしょうがないよ^^
たとえばMySQLならexplainで実行計画を確認するのは
初心者が一番初めに覚えるべき基本だろ。
基本をはずしたヤツが開発したWebアプリはサイトがヒットした瞬間、
「トップページも表示されません」「今日は売り上げがゼロでした」という
間抜けなことになる(笑
こんなこと言っても、ここの連中には馬の耳に念仏だろうけどね(笑
まぁ 生まれつき低脳だから仕方ない^^
なんていうか、向上心が無い。知識が狭くて浅いが、本人には自覚が無いのでたちが悪い。
0219nobodyさん
2011/01/23(日) 12:54:43ID:???ママに怒られたか
0220nobodyさん
2011/01/23(日) 20:39:24ID:???考えるのは当たり前のこと
Rails で間抜けな SQL を発行している人間は Java を使っても間抜けなコーディングになるだけ
0221nobodyさん
2011/01/23(日) 21:03:33ID:???0222nobodyさん
2011/01/24(月) 00:32:29ID:???t.text :data
end
class Hoge < ActiveRecord::Base
def hoge
puts "*A* data = #{data.inspect}"
data = "fuga" if false
puts "*B* data = #{data.inspect}"
end
end
Hoge.create!(:data => "hoge")
で Hoge.first.hoge すると
*A* data = "hoge"
*B* data = nil
となるのは、なぜ? 両方 "hoge" になるべきだと思うんだけど。
Rails 3.0.3 + Ruby 1.9.0p0 でも Rails 2.3.5 + Ruby 1.8.7 でも同様。
0223nobodyさん
2011/01/24(月) 00:57:19ID:???Rails関係ないから初心者スレに行くといい
0224nobodyさん
2011/01/24(月) 04:21:21ID:???0225nobodyさん
2011/01/24(月) 08:21:35ID:???0226nobodyさん
2011/01/24(月) 16:22:48ID:???require 'active_support/all'
module M
def self.included(base)
base.class_eval do
class_inheritable_accessor :a
self.a = 1
end
end
end
p Class.new.send(:include, M).new.a # => 1
p Class.new{include M}.new.a # => nil ← !?
0227nobodyさん
2011/01/24(月) 16:58:51ID:???初 心 者 ス レ に い け
0228nobodyさん
2011/01/24(月) 17:10:48ID:???0230nobodyさん
2011/01/25(火) 15:35:25ID:???session_id から session を復元する方法はありませんか?
(Rails3+Dalli です)
ActiveRecordベースの場合、以下のようにして復元できたのですが。。。
session = ActiveRecord::SessionStore::Session.find_by_session_id(session_id)
0231nobodyさん
2011/01/25(火) 17:12:30ID:yu47GaxVうちはまだ Dali でも Rails3 でもないけど、cache をストアに使っている
MemCache クラスのインスタンスだとすれば、cache["session:#{session_id}"]
で取れてる。
memcache上のキー自体は #{namespace}:session:#{session_id} になっている。
0232230
2011/01/25(火) 20:00:15ID:???返答ありがとうございます。
以下のやり方でいけました。
session = Dalli::Client.new('localhost:11211').get("rack:session:#{session_id]}")
デシリアライズまで透過的にやってくれるのはありがたいのですが、
memcacheのクライアントをリクエストのたびに毎回生成してしまうやり方なので、
負荷的によろしくなさそうなのが何とも。何か良い方法はないものかな。
Rails.cache.fetch(session_id) とかで取れれば、楽なんですがねぇ。
0233nobodyさん
2011/01/25(火) 20:44:25ID:F3Uu324/入ってなかった?
0234230
2011/01/25(火) 22:13:27ID:???CACHE = MemCache.new memcache_options
CACHE.servers = 'localhost:11211'
ActionController::Base.session_options[:expires] = 1800
ActionController::Base.session_options[:cache] = CACHE
という感じで、memcacheクライアントの実態が入っていたようです。
3.xからは、ActionController::Base.session_options が request.session_optionsに移動して
:cache もなくなってしまった感じっぽいです(Rails.cache?)。
0235nobodyさん
2011/01/27(木) 02:20:28ID:8vsS5446【ネット/料理】「年内にクックパッド抜く」 楽天レシピ、急成長
http://toki.2ch.net/test/read.cgi/wildplus/1296032687/
0236akiyan
2011/01/28(金) 23:35:53ID:???0237nobodyさん
2011/01/29(土) 02:50:04ID:ioBbPtI8http://invizi.net/subject:58
[クックパッド][cookpad][ruby][rails][楽天]
0238nobodyさん
2011/01/29(土) 02:51:19ID:ioBbPtI8http://invizi.net/subject:60
0239nobodyさん
2011/01/29(土) 13:25:51ID:???Book.transaction do
処理1
処理2
end
このようなコードを書いた場合、
処理1と処理2がいずれも実行されるか、いずれも実行されないか
を保障するというのは理解できるのですが、
処理1と処理2の間に別プロセスがBookテーブルに変更を加えてしまうことはあり得ますか?
具体的には、Bookテーブルにcountというカラムがありまして
この本を保持する人の人数を保持しています。
ユーザーからのあるアクションによって、複数のbookのcountを更新する必要があるのですが、
Aさんが更新中にBさんが更新してしまうと整合性が取れなくなってしまう問題に当たっています。
この更新処理を上のコードのトランザクションで囲めば解決されるのでしょうか?
0240nobodyさん
2011/01/29(土) 13:35:21ID:???rails3+jpmobile環境なのですが、jpmobileのconfig.jpmobile.mobile_filter をオンにした状態化で
swfファイルを send_file or send_data すると jpmobile のフィルタの影響で不正な swf ファイルが送信されてしまいます
なんとか、mobile_filter をオンにしつつ、正常な swf ファイルを送信する方法はないでしょうか?
0241nobodyさん
2011/01/29(土) 14:10:00ID:???ttp://dev.mysql.com/doc/refman/5.1/ja/innodb-transaction-isolation.html
InnoDB使ってるだろうから、デフォルトの REPEATABLE READ だと思われる。
結論からいうと、Bookテーブルは別のプロセスから変更を受けうる。
ただし、Bookテーブル内のロックされた行は
別プロセスから変更を受けないことが保証される。
テーブルレベルのロックと行レベルのロックの違いを汁。
Aさんが行1,2を更新している間は、Bさんは行1,2のコミットが終わるまでは、
UPDATEやDELETEはもちろん、SELECT文での読み取りも不可能になる。
ただし、Aさんがそのトランザクション中に更新しないとMySQLが判断した
行3なんかがあたとしたら、Bさんは行3に関しては読み取り・更新が出来る。
書き方が変だと、トランザクションはったつもりでも
レースコンディションが起こるので注意。
ttp://d.hatena.ne.jp/LukeSilvia/20100130/p1
0243240
2011/01/29(土) 14:17:43ID:???lib/jpmobile/mobile/docomo.rb
をいじって、SJISへのコンバート処理をコメントアウトし、必ずUTF8を使うようにしたところ
問題が起こらなくなりました。
あまりよくない方法の気もするので、もっと良い解決策があったらご教授お願いします m( _ _ )m
0244nobodyさん
2011/01/29(土) 15:13:12ID:XpJ1rxWJソース見て見たけど、mobile_filterってonlyとかexceptオプション認識しないのな…
swfを返すとこだけ別コントローラにして、mobile_filterをそれ以外に書く、
で回避できぬ?
0245239
2011/01/29(土) 16:47:50ID:???>>242
分かり易い説明ありがとうございます。
トランザクションとロックの関係が分かっていなかったので混乱していました。
トランザクション中に更新されうる行をMySQLが判断してロックをかけてくれる、
というところでスッキリしました。
ただ、以下の点については
>Aさんが行1,2を更新している間は、Bさんは行1,2のコミットが終わるまでは、
>UPDATEやDELETEはもちろん、SELECT文での読み取りも不可能になる。
SELECT文はロックをかけないのでAさんが更新中でもBさんはSELECT可能なのではないですか?
もしSELECTも不可能になるのであれば何も心配無いのですが、
SELECTが可能なのであればBさんの更新でAさんの更新が消えてしまいます。
見当違いなことを言っていたらすいません。
0246nobodyさん
2011/01/29(土) 17:08:16ID:???何を言いたいのか意味不だがトランザクションで複数のSQL文をまとめたところでロックをかけるのはSQL単体レベルってのは理解してる?
0247nobodyさん
2011/01/29(土) 17:43:34ID:???BさんがSELECT実行するのは可能だが
コミット前のAさんの変更分をBさんがSELECTで読み取ることは出来ない
って意味だろ
0248nobodyさん
2011/01/29(土) 18:09:46ID:???それはトランザクションとは言わない。
0249nobodyさん
2011/01/30(日) 00:50:26ID:YHMQGBGnこのプラグインを活用することで、高速開発が可能です。
http://1-byte.jp/2011/01/06/open_trivist/
0250nobodyさん
2011/01/30(日) 09:12:32ID:???http://journal.mycom.co.jp/news/2011/01/28/061/index.html
使ってるんだが、Oracle・・・
0251akiyan
2011/01/30(日) 12:16:54ID:???radrails久しぶりに使ってみよう
0252nobodyさん
2011/01/30(日) 16:03:53ID:???radrailsの技術者がaptanaに引き抜かれたけど、
IDEの開発じゃなくて別の仕事に割り当てられてるって
以前どこかのサイトで見たぞ。
0253nobodyさん
2011/01/30(日) 21:04:11ID:???0254nobodyさん
2011/01/30(日) 23:13:14ID:APKrEmun0255nobodyさん
2011/01/31(月) 03:41:59ID:???0256nobodyさん
2011/01/31(月) 08:46:15ID:Rhe/MGsRhttp://netbeans.org/community/news/show/1507.html
based on existing low usage trends we are unable to justify the continued
allocation of resources to support the feature.
0257nobodyさん
2011/01/31(月) 09:05:55ID:???0258nobodyさん
2011/01/31(月) 10:58:50ID:???これを
<%= link_to @post %>
と書けるヘルパーありませんか?
0259nobodyさん
2011/01/31(月) 11:43:09ID:???0260nobodyさん
2011/01/31(月) 13:50:56ID:???def link_text
self[:title] || self[:name]
end
#helper
def link(obj)
link_to obj.link_text, obj
end
0261nobodyさん
2011/02/01(火) 00:24:55ID:yP2kD8Vl参考になりそうなサンプルないでしょうか
0262nobodyさん
2011/02/01(火) 11:25:53ID:lrZ+99HCSyntax Highlight
http://ruby-toolbox.com/categories/syntax_highlighting.html
CRM Apps
http://ruby-toolbox.com/categories/crm_apps.html
E-Commerce
http://ruby-toolbox.com/categories/e_commerce.html
0263nobodyさん
2011/02/01(火) 18:28:26ID:???以下のようにクラスメソッドとして、scopeを呼び出すと意図した通りに動きます。
scope male, where(:sex => 1)
User.male
しかし、インスタンスメソッドとして呼び出すと、
そんなメソッドは無い、と怒られます。
u = User.all
u.all.male
NoMethodError: undefined method `male' for #<User:0xa41ae74>
scopeをインスタンスメソッドとして呼び出す方法はないのでしょうか?
0264nobodyさん
2011/02/01(火) 18:53:45ID:gX/bMisP0265nobodyさん
2011/02/01(火) 20:27:21ID:???ちなみにallが返すのはArrayな。
0266nobodyさん
2011/02/01(火) 21:51:18ID:???十分意味があると思う
0267nobodyさん
2011/02/01(火) 22:20:26ID:???思うことはある。 User#male? とか別途用意するの面倒。
0268nobodyさん
2011/02/01(火) 22:27:21ID:ikyFKs3wu はUserのインスタンスの配列であってUserのインスタンスではないぞ。
0269nobodyさん
2011/02/01(火) 22:31:18ID:???普通にできるけど^^;
0270nobodyさん
2011/02/01(火) 22:35:51ID:ikyFKs3w0271nobodyさん
2011/02/02(水) 02:35:39ID:???Railsを1週間ほど前から使い始めました。
初級者本を読んで何とか自分でTODOアプリ的なものを作れるようになりました。
0272nobodyさん
2011/02/02(水) 05:41:57ID:???0274nobodyさん
2011/02/02(水) 22:16:10ID:QKkorMRK??
0275nobodyさん
2011/02/03(木) 08:46:30ID:???> User.where('18 > ?', :age).male
>
> 普通にできるけど^^;
クラスメソッドとインスタンスメソッドを
混同しているようだ。
0276nobodyさん
2011/02/03(木) 20:50:46ID:???0277nobodyさん
2011/02/03(木) 21:36:49ID:???0278nobodyさん
2011/02/04(金) 02:35:49ID:???デザイナーさんとの協業が大変すぎるので
いい方法を探してます。
0279nobodyさん
2011/02/04(金) 08:46:49ID:2Ew9ESxwRails から使えるようにする方法はあるのかわからん。
0280nobodyさん
2011/02/04(金) 17:22:59ID:???パフォーマンスに違いがあったりするのでしょうか。
内部的に、mapの方は並列化して処理できるから早いとか。
0282nobodyさん
2011/02/04(金) 20:17:28ID:???つまり同じです
0283nobodyさん
2011/02/05(土) 21:02:57ID:DexYYH6tpublic/image/***.jpgに画像を置いてるんですがファイルが存在しないときroutesを通さず404を返すにはどうすればいいですか?
0284nobodyさん
2011/02/05(土) 21:49:10ID:GPb9IKNiRewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ¥.jpg$ [R=404]
みたいな(未確認)
0285nobodyさん
2011/02/06(日) 04:04:42ID:???0286nobodyさん
2011/02/06(日) 09:42:56ID:???0287nobodyさん
2011/02/06(日) 12:25:14ID:???特に複数人でのプロジェクト
0288nobodyさん
2011/02/06(日) 12:54:13ID:???0290nobodyさん
2011/02/06(日) 18:38:48ID:???0292nobodyさん
2011/02/06(日) 21:29:00ID:???マージがめんどくさくなりそうな気がする
0293nobodyさん
2011/02/06(日) 21:44:27ID:???でググったら幸せになれるかもだよ
0294nobodyさん
2011/02/06(日) 21:45:23ID:???0295nobodyさん
2011/02/06(日) 21:59:05ID:???DB変更する時は突然マイグレーションファイルアップするのではなく、口頭でメンバーに伝えて情報共有する。
既存のマイグレーションファイルはいじらない。
rollbackでちゃんと元に戻るように記述しておく。
このぐらいを気をつけていれば何も問題ない。
0296akiyan
2011/02/07(月) 02:06:53ID:???それって結局migrateとバージョン管理に頼らず口頭で管理してるってことになりませんか
5人規模のプロジェクトならいいけれど中華人民共和国の人口は13億ですよ 口頭で管理したら破綻しませんか
0297nobodyさん
2011/02/07(月) 02:14:37ID:QPqcOi6Pなんでそうなるの?
議論を経て仕様変更についての知識を共有した上で、
変更自体はマイグレーションファイルを作ってやってるわけでしょ?
0298nobodyさん
2011/02/07(月) 02:38:22ID:???これはRailsが裏で何かやってるんですかね?
membersテーブルにnameというカラムがあるとします。
class Member < ActiveRecord::Base
def mthd
name = 'Suzuki'
end
mthdを呼んでも何故かnameはローカル変数ではなくセッターとして認識される。
0300nobodyさん
2011/02/07(月) 19:14:00ID:???これを防ぐ方法はないのでしょうか。
0301nobodyさん
2011/02/07(月) 20:26:45ID:???0302nobodyさん
2011/02/07(月) 21:37:50ID:???pluginのバージョンが変わってしまうと結局 危ないので freeze する方法が知りたいのです。
0303nobodyさん
2011/02/07(月) 21:59:32ID:QPqcOi6P自分とこにgitリポジトリ作って、それを参照する。
0304nobodyさん
2011/02/08(火) 00:10:06ID:???差分を書いてソースを生成するなんて阿呆かと思うが、それはさておき。
マイグレーションファイルをいじっていいのはコミットするまでだ。
■ このスレッドは過去ログ倉庫に格納されています