12/01/21 09:44:14.53
URLリンク(github.com)
URLリンク(devcenter.heroku.com)
701:nobodyさん
12/01/21 09:47:01.40
gem install dalli
require 'dalli'
dc = Dalli::Client.new('localhost:11211')
dc.set('abc', 123)
value = dc.get('abc')
702:nobodyさん
12/01/21 09:56:31.70
>>696
全然センス無いクソ仕様だな。
DB重くなるだけじゃん。
ページキャッシュの方が速いし軽い。
703:nobodyさん
12/01/21 23:00:45.95 vuwYpWFi
URLリンク(www.onas.asia)
URLリンク(www.onas.asia)
rubyの全くあたらしいフレームワーク
URLリンク(atnd.org)
704:nobodyさん
12/01/21 23:03:51.32 vuwYpWFi
<オープンソース Rubyフレームワークのご紹介>
URLリンク(kwansaiit.blogspot.com)
705:nobodyさん
12/01/22 00:32:20.37
rubyしてる人って、新しい情報をドヤ顔で共有したがる傾向が強いよね
706:nobodyさん
12/01/22 00:58:43.15
みんな使ってるのはApache?
すごい重いんだけどおすすめなにかない?
707:nobodyさん
12/01/22 01:22:57.72
それだけでは判断できんわ。
メモリの量とかCPUとかディスクにもよるし。
メモリの使い具合にも、SQLにもよるし。
708:nobodyさん
12/01/22 02:05:42.97
>>705
rubyの方は極めて保守的だと思うよ。
Railsはそういう傾向あり。
709:nobodyさん
12/01/22 06:31:01.16
>>707
CPUは常時50%くらい
メモリも常に1Gは余ってる(4GB)
IOもそんなに多くない
でも、めっちゃ重いんだ
710:nobodyさん
12/01/22 09:25:06.68
必要なとこにindex張ってないとか
711:nobodyさん
12/01/22 10:44:06.70 sE8mL0/v
モデルに
rails generate migrate add_カラム名_to_テーブル名 カラム名:型
って書くと思うんですが、
カラム名の中にアンダーバーを使いたい場合はどう書けばいいのでしょうか?
712:nobodyさん
12/01/22 11:54:22.60
711です。
アンダーバーを使わずcamel caseで書けばいいのですね、
おさわがせしました。
713:nobodyさん
12/01/22 12:47:08.93
>>708
rubyはバージョン間の互換性が凄く低い
とてもじゃないけど、保守的とは思えない
学生の文化祭ノリで言語作ってるから性質が悪い
714:nobodyさん
12/01/22 12:55:48.13
>>705
前向きに言い換えよう
新しい情報をドヤ顔で共有する勇気!
715:nobodyさん
12/01/22 13:06:10.63
>>713
それは感じた事ないな。
1.8系と1.9系は中身かなり違うが、書く分には対した違いではない。
遥か昔の1.4とかに比べても、そんなに変わってないと思う。1.6辺りからだと尚更。
MLに「こうしたら?」みたいな提案はよくあるけど、かなりの確率でmatzにリジェクトされてる。
昔はserializeしたデータにバージョン間で互換性がなくて実質使えなかったが、そういうのも聞かなくなった。
学生ノリはPHPとかスゴいよね。
関数名のアンダーバーをバージョン上がる毎に付けたり取ったり。
716:nobodyさん
12/01/22 13:13:09.46
Railsの変化は速すぎ。
枯れてから使おうとか考えてる人には合わない。
仕事でもプロジェクト開始後にバージョン上げたりするし。
もちろんテストがあればこそできる話。
717:nobodyさん
12/01/22 13:24:18.85 sE8mL0/v
yml-mode.elってどこにありますか?
URLリンク(yaml-mode.clouder.jp)
ここみてもみあたらないんですが・・・・
718:nobodyさん
12/01/22 13:25:30.57 sE8mL0/v
すみません。elispのとこにありました
719:nobodyさん
12/01/22 13:27:49.79
Rails の Symbol#to_proc がrubyに入った時はビックリしたわ。
新しい流れだなと。
720:nobodyさん
12/01/22 13:33:23.09 kpA61za+
"Ruby"じゃなくて"Rails"の互換性ってどうなの?
Rails1.2からRails3.1に移植したら大変かな?
721:nobodyさん
12/01/22 13:45:54.13
>>715
PHPはとってつけたような関数が多すぎるのがな。
722:nobodyさん
12/01/22 13:46:36.87
>>720
かなり大変。
2系から3系で結構苦労した。
723:nobodyさん
12/01/22 13:53:49.66
>>720
無茶苦茶大変。
DBだけ残して新しく作る方が楽かも。
もしくはDBも新しくして、移行プログラム走らせるとか。
habtmみたいな、もう誰も使ってないのが使われてそう。
いずれにしろスキル要るし、1系から3系まで知ってる人はそんなに居ない。
724:720
12/01/22 14:04:05.41
>>722-723
うわ、ありがとう
じゃ、覚悟しとくわ
まず一度移植にトライしてみて
ダメだったら1から新しく作るわ
725:nobodyさん
12/01/22 15:20:26.03
1から3まで全部知ってる人を見つけたからって移植を頼むなよ。絶対に頼むなよ。
726:720
12/01/22 16:54:14.92
あ、今Wiki見て知ったけど、
昨日1月20日に最新版Rails3.2出たんだな
>>725
ということで、Rails1.2からRails3.2への移植でおながいします
727:nobodyさん
12/01/22 17:12:54.33
どうやったら行けるかね。
もうrake rails:updateとか無理だから、
新しく3.2でプロジェクト作る。
app/ とかを古い方から持ってくる。もしくは新しい方から、Gemfile や config周り持って行く。
routes 移植。
プラグイン周りとか移植。
最後のは移植しないで、例えば新しいプラグイン入れて、認証のencryptのとこだけ差し替えるとか。
どちらにせよ、茨の道。
728:nobodyさん
12/01/22 19:09:32.81
URLリンク(github.com)
729:nobodyさん
12/01/22 19:58:58.08
そんなに移植って大変かなあ?
具体的にどの辺りが大変だったのか参考までに聞きたい
Ajax周りは3系でガラッと変わったから面倒だったけど
730:nobodyさん
12/01/22 22:21:01.46
Railsで、同じURLに対して、
・ブラウザでの通常のアクセスと
・JavaScriptとかでやってくるAPI的なアクセス
をコントローラ側で区別したい場合、どういうふうにするんでしょうか。
(a) Acceptヘッダーを見るのか、
(b) 独自にX-FooBarヘッダーをつけるのか
(c) *.jsonや*.xmlへのアクセスはAPIと見なすのか
よろしくお願いします。
731:nobodyさん
12/01/22 22:31:37.18
params[:format]
732:nobodyさん
12/01/22 22:41:09.29
自分は(c)でやってる。
(a)とか(b)だと使いまわしが面倒じゃない?
733:nobodyさん
12/01/22 23:19:32.46
要求仕様によるけど、 xhr? で間に合うケースもあるかもね。
734:720
12/01/23 00:46:09.88
>>727 (>>729)
どうもぉ~
さっき本屋で立ち読みしてきたけど
Rails3.1の仕様もそ~んなに変わってるようには見えなかった
でも、rhtml → erbまで違うとはね・・・
ま、多分、コンテンツになる部分だけ残して
あとは全部Rails3.2で作ることになりそう
インフル罹ったみたいなんで寝ますわ・・・
735:nobodyさん
12/01/23 01:30:53.30
>>730
APIとブラウザの違いというか、返すデータの種類が違うなら
UAではなく求められているデータの種類で分けるべきでは
要求されてるものがブラウザがHTMLでAPIがjsonやXMLなら
:formatが違うから(そのようにするべきだろう)
単にrespond_toで分ければいいだけだろ
736:nobodyさん
12/01/23 02:34:29.77
>>735
返すデータの種類を、拡張子で判断するよりも、Acceptヘッダーを見るほうが、本来は正しいあり方なんじゃないでしょうか。
/foo/bar/123
/foo/bar/123.html
/foo/bar/123.xml
/foo/bar/123.json
これらは、ほんらいは同じリソースのはずで、単に表現形式が違うだけにすぎない。
なのに別々のURLを割り当てるのは、おかしいように思います。
737:nobodyさん
12/01/23 08:24:44.75
リソースにURIを割り当てるのがRESTの考え方だからねぇ。
jsonが欲しければ.jsonで取るのは自然だと思うよ。
フォーマットが違うだけだし。
738:nobodyさん
12/01/23 08:30:21.94
ヘッダを変える方法だと、ブラウザでの操作がしにくくなる。
739:nobodyさん
12/01/23 09:52:44.98 X3Xu6cIF
RESTだから。としかいいようがないな。
740:nobodyさん
12/01/23 10:47:27.27
Acceptは受け入れ可能なフォーマットを書くところであって要求を書く場所じゃないから
741:nobodyさん
12/01/23 20:43:45.49
>>737
>フォーマットが違うだけだし。
だから違うURLを使うのはおかしいって話でしょ。
表現が違ってもリソースはひとつなんだから、本来ならURLもひとつにすべき。
742:nobodyさん
12/01/23 21:08:30.69
じゃあAcceptで実装したらいいんじゃないの。
そこまで考えまとまってるなら別に他がどうとか気にする必要ないよ。
743:nobodyさん
12/01/24 11:10:30.83 rjvP9n7H
Rails3.1何ですけど
プリコンパイルを一切使わない設定って出来ませんか?
CSSでクロスブラウザ対策してたりするとコンパイルこけるし
色々不便なので一切使わないようにしたいのですが
744:nobodyさん
12/01/24 14:23:23.89
asset pipeline使わないという事なら、config/application.rb に設定ある。
他は、 config/environments/production.rb
745:nobodyさん
12/01/24 15:01:11.36
/publicに置けばいいんじゃないの
それだとhelperが使えないんだっけ?
746:nobodyさん
12/01/24 15:24:13.68 R2GYQ8Ee
URLリンク(github.com)
URLリンク(railscasts.com)
747:nobodyさん
12/01/24 17:34:59.60 /isHqZPr
railsに関する質問ってここでしてもいいんですかね?
748:nobodyさん
12/01/24 17:52:55.66
ダメに決まってるだろ
749:nobodyさん
12/01/24 18:08:32.06 /isHqZPr
>>748
そ、そんな
だめなんですか
特例でおしえていただきたいんですが
750:nobodyさん
12/01/24 18:13:03.92 /isHqZPr
とりあえずかきこんじゃいます。
今ちいさなアプリケーションをrailsで作っているのですが、
formにメッセージを書き込む際に
あわせて書いた人のユーザーid を取得したいのですが、
どこに記述してよいかわかりません。
formの一部を抜粋するとこうなってます↓
<div class="field">
<%= f.label :message %><br />
<%= f.text_area :massage %>
</div>
お願いいたします
751:nobodyさん
12/01/24 18:14:55.52
押しが強くてワロタ
752:nobodyさん
12/01/24 18:16:14.91
massage エロス
あとユーザIDってのは自分で入力させるの?
それともセッションかどっかに入ってるの?
753:nobodyさん
12/01/24 18:22:49.82 /isHqZPr
押し強くてごめんなさいw
分からなくてすごく困ってたんですw
ユーザーのidは書いているユーザー一人一人が持っていて、
<%= current_user.id %>
とかけば出力されます。
理想としてはメッセージを送ると自動でuser_idもDBに送られるようにしたいです。。
754:nobodyさん
12/01/24 18:54:33.22
Railsでは普通、idは入力させたり、フォームから送るものではない。
セーブした時にDBから割り当てられるもの。
もし、任意のid(初心者ならこのカラム名はやめた方が良い)を入力させるなら、
重複が無いかなどを調べないといけない。
755:nobodyさん
12/01/24 18:57:49.67
んーと、送り主のidはフォームからは普通送らない。
コントローラで current_user.id とかやって、メッセージにセットする。
756:nobodyさん
12/01/24 19:16:19.62 /isHqZPr
idはuserテーブルののidをとりあえずmessageテーブルにuser_idとしてながしこみたいのです…
コントローラーでやるんですね、
ちょっといろいろためしてみます!
757:nobodyさん
12/01/24 19:31:55.63 /isHqZPr
書き方がわからなかったので、フィーリングで、
コントローラーのdef createところに
@message = Message.new(params[:Message])
params[:user_id] = current_user.id
とかいたのですが、うまく動かず…orz
758:nobodyさん
12/01/24 19:33:23.03
params に渡してどうするのよ。
message に渡しなよ。
@message.user_id = current_user.id
759:nobodyさん
12/01/24 19:38:15.04 /isHqZPr
うおおお ちゃんと登録されました!
た、助かりました…!ありがとうございます
760:nobodyさん
12/01/25 01:09:22.67
そういや>>736あたりの話なんだけど、
Railsでは /foo/123 には /foo/123.xml とか /foo/123.json とか :format がつけられるじゃん?
これって、コンテナリソースにはつけられるの?
つまり /foo/.xml とか /foo/.json とかはできるわけ?
それともコンテナリソースに対して xml や json を要求する場合はまた違う方法になるの?
761:nobodyさん
12/01/25 07:42:06.57
index.json
762:nobodyさん
12/01/25 08:11:31.32 CoUa4Jns
foos.xml とか foos.json
763:nobodyさん
12/01/25 10:11:00.50
config/route.rbでどうとでもできるからな
764:nobodyさん
12/01/25 11:16:46.09
テーブルの、あるフィールドの最大値を取得したいのですが、うまくいきません。。。
たとえばFooというテーブルのbarというフィールドの最大値を取得したいときは、以下のように書けば良いらしいのですが・・・
Foo.maximum('bar')
しかしながら、こう書くと『no method error』になるのです。
こちらの環境はRuby1.9.3、Rails3.1.3です。
maximumメソッドについては、以下のサイトで見つけました。
URLリンク(railsdoc.com)
これによると3.1.0までは対応しているようですが、3.1.3にはもうmaximumはないということでしょうか?
765:nobodyさん
12/01/25 13:21:04.50
普通に取れるけど。3.1.3と3.2.0で試した。
そのフィールド無いんじゃないの?
766:nobodyさん
12/01/25 14:04:53.51 T66svPqt
user
friend
entry
があります。
user にはstatusがあって、statusがwarningの物は友人でなくとも無条件で表示したいです
entry.joins( :user => :friend ).("users.status = ? OR friends.post_user_id = ?" , "warning" , session[:user_id] )
これで取れるかと思ったのですが、users.status = ?がスルーされているのか
後のfriendの記事しか取れません
joinについて何か大きな勘違いをしているのかもしれませんorz
どうすればとれますか?
767:nobodyさん
12/01/25 14:19:09.42
>>765
すみません、説明不足でした。
正確には、ある条件でデータを絞った後で、その中でのフィールドの最大値を取得したいということなのです。
まずFooというテーブルにbar、bazという2つのフィールドがあるとします。
イメージ的には、やりたい内容は以下のようなことです。
-------------------------------------
f = Foo.find_by_bar(○○○)
puts f.maximum('baz')
-------------------------------------
このやり方ですと、undefined method になります。
確かに、Foo.maximum('bar')という風に、絞り込んだものに対してではなく、直接最大値を取得するやり方ならうまく取れました。
絞り込んだものに対しては、maximumは使えないのでしょうか?
768:nobodyさん
12/01/25 14:54:10.77
>>767です。
すみません、自己解決しました。
以下の方法で、条件を絞ったうえでの最大値を取得できました。
Foo.maximum(:bar, :conditions => {:baz => ○○○})
お騒がせしてすみませんでした;;
769:nobodyさん
12/01/25 20:32:05.37 CoUa4Jns
>>767
ところでFoo.find_by_barだとfはFooのインスタンス1つになるわけだが。
770:nobodyさん
12/01/25 21:57:29.42
railsの
model = Model.new(param[:prefix])
model.save()
ってやり方は、悪意あるユーザがフォームにないパラメータを送ると
意図しない属性も変更されてしまうと思うのですが、そんなことないですか。
771:nobodyさん
12/01/25 22:04:45.35
mass assignできなくすれば大丈夫
772:nobodyさん
12/01/26 05:29:31.01 WYeK+tHX
みなさんは高速化のためにどんな方法をとってますか?
例えば、ブログなんかで
最新のコメント
なーんてものがありますよね?
ああいう、頻繁に更新される可能性がある一箇所のせいで結構つらい思いをすることもあります
ログイン→ようこそ◯◯さん等もそうですが
いくつか考えたのですが、ページキャッシュしてしまい
そういった部分を全てAjax等で非同期読み込み
上でも出てたJavascriptでCookieを調べて割り振り
どちらも、Rails外での話なのでどうしても面倒くささを感じてしまいます……
773:nobodyさん
12/01/26 07:00:43.56 LIf9fd2V
フラグメントキャッシュ使えし
ところで、フラグメントキャッシュって一定時間で破棄って出来ない?
5分で破棄したいのだけど……
774:nobodyさん
12/01/26 11:45:32.46
>>771
>mass assignできなくすれば大丈夫
ありがとうございます。でもこれってデフォルトでは作る側がいちいち設定する必要があるんですよね。
設定しなかった場合は、悪意あるユーザからの攻撃をいとも簡単に受けてしまう。
なんでデフォルトで禁止してないんですかね。
URLリンク(d.hatena.ne.jp)
> みたいにmass assignmentを使ってしまうと、entry[user_id]=1 とか適当なパラメータを送るだけで誰か他のユーザの投稿として Entry を更新することができたりするわけで。
> もちろん手を抜くなとか忘れるのが阿呆だとかはあるかもしれないけど、わたしのような初心者には結構危なく感じた。
>
> なんでRailsはデフォルトでmass assignment不可にしないんだろう?
> デフォルト不許可にしてしまうと、スキーマが変更されるたびに合わせて attr_accessible を修正しなきゃいけないとかDRYじゃねえよウゼーという感じなんだろうか。
775:nobodyさん
12/01/26 11:55:04.00
findした段階で大体防げるからなぁ。
@enty = current_user.entries.find(params[:id])
みたいに。
そう書いてないとダメだが。
776:nobodyさん
12/01/26 12:28:43.36
>>772
最近ならそういった情報で更新されにくいものは
クライアントサイドのlocalStorageにいれてしまうってのもありだな
サーバーへアクセスされないからAJAXの負荷が無い
777:nobodyさん
12/01/26 16:01:35.70
>>775
なんでそれで防げたことになるんですか?
今問題にしているのはcreateやupdateの話であって、findは関係ないような。
778:nobodyさん
12/01/26 16:30:47.72
updateの時は初めにfindするし、
createでは
@entry.user_id = current_user.id
するだろ。
しなければもちろん外からセットされる。プロテクトしてなければ。
Railsに限った話ではなくて、そう作ればそうなるよという事。
779:nobodyさん
12/01/26 18:58:14.63
>>778
もしかしてuser idのことだけ言ってますか?>>775で
>findした段階で大体防げるからなぁ。
と言っているのが不思議だったんですけど、user id *だけ* みればそうかもしれません。
しかし774などで指摘していることは任意のフィールドに当てはまることであり、
「findした段階で大体防げる」ようなものではないんじゃないですか。
780:nobodyさん
12/01/26 20:03:46.49 RmSk4BIq
rails3.2でcsvのfixtureを読み込まなくなって
移行しようにも苦労しているのですが
おすすめのcsv読み込みツールってありますか?
781:nobodyさん
12/01/27 11:02:32.60
> >mass assignできなくすれば大丈夫
> ありがとうございます。でもこれってデフォルトでは作る側がいちいち設定する必要があるんですよね。
> 設定しなかった場合は、悪意あるユーザからの攻撃をいとも簡単に受けてしまう。
これで終わりじゃん
782:nobodyさん
12/01/27 14:38:18.12 lH99fQFB
Riding Rails: Rails 3.2.1 has been released
URLリンク(weblog.rubyonrails.org)
783:nobodyさん
12/01/27 18:06:51.09
route.rbに関しての質問です。
pages/:idの:idの部分を、ユーザの名前にしたくて困っています。
route.rbを
match "'pages/:username" => "pages#show", :via => :get, :path => :name
にしてrake route すると、
pages/usernameというルートしかできず…
方法ご存知な方いらっしゃいますか?
784:nobodyさん
12/01/27 22:26:17.58 50WK7S02
class Page
def to_param; name; end
end
rails c
>> helper.controler = app
>> app.page_path(Page.create(:name => 'foobar'))
デフォルトのルーティングだと、名前であろうとパラメータ的にはあくまで
:idというパラメータとして渡されてくるので、:idだがnameとして扱うこと。
785:nobodyさん
12/01/28 05:39:03.61
>>779
なぜわざわざ770みたいな脆弱な書き方を覚えてしまったのか
それは「横着な書き方」であって脆弱なのは当たり前だし、それでもRailsにはその脆弱さを防ぐ方法がいくつも備わってる
ちなみに775の言ってる事は俺も的外れだと思う
786:nobodyさん
12/01/28 10:17:16.60
>>785
scaffoldが
foo = Foo.find(params[:id])
foo.update_attributes(params[:foo])
foo.save
みたいなコードを吐く以上、それがRailsの標準的なやり方と見なされてもしょうがない。
ところで
>それでもRailsにはその脆弱さを防ぐ方法がいくつも備わってる
って言ってるけど、具体的にはどんな方法があるの?
いくつもあるなんて知らなかった。
787:nobodyさん
12/01/28 18:10:10.01
>>764
このサイト知らなかったな
微妙に間違っているが、すごい解説の量だ!
788:nobodyさん
12/01/28 20:25:27.97 kusQOV3z
attr_accessible と attr_protected
URLリンク(blog.digital-squad.net)
Use attr_protected or we will hack you - Blog Articles - LessEverything
URLリンク(lesseverything.com)
789:nobodyさん
12/01/28 21:31:22.30 kusQOV3z
attr_accessibleは、ActiveModel::MassAssignmentSecurityの機能で、
newやらupdate_attributesやらでレコードの属性を「一括設定してもよい」属性を
指定するもの。逆に「一括設定を禁止」するattr_protectedとペアで考える。
URLリンク(read2ch.com)
790:nobodyさん
12/01/28 21:47:54.91 kusQOV3z
assign_attributes
URLリンク(www.oiax.jp)
update_attributes
URLリンク(blog.livedoor.jp)
791:nobodyさん
12/01/29 14:01:57.04
れいるず、速習のコツを教えてくだされ。
792:nobodyさん
12/01/31 07:44:07.71
RailsによるアジャイルWEBアプリケーション開発っていうすばらしい本が出てるからその通りにショッピングサイトを作ればオッケー
793:nobodyさん
12/01/31 11:18:03.40
翻訳者宣伝乙
794:nobodyさん
12/01/31 19:00:01.98
>>792
で、やってる途中で新バージョンが出る
795:nobodyさん
12/01/31 21:42:32.22 J/mA32Fb
Rails Guidesでええやん。
796:nobodyさん
12/01/31 22:06:34.42 Nhw8SxC0
When I did all the programming for the original version of Basecamp back in 2003,
we ended up shipping with just about 2,000 lines of code.
URLリンク(37signals.com)
37signalsのBasecampは米国企業上位500社の321社が利用中 ? SEO Japan
URLリンク(www.seojapan.com)
Ruby on Rails開発者のDavid Heinemeier Hanssonによる「起業の学校」講演!
URLリンク(toshio.typepad.com)
2000人の顧客が月40ドルを12か月払えば、100万ドルになる。
797:nobodyさん
12/01/31 22:10:27.23 Nhw8SxC0
Getting Real by 37signals
URLリンク(gettingreal.37signals.com)
798:nobodyさん
12/01/31 23:23:30.79 Nhw8SxC0
URLリンク(twitter.com)
URLリンク(www.sponichi.co.jp)
799:nobodyさん
12/02/01 09:50:30.32
ActiveRecordで取得したレコードに対してeachメソッドみたいに全カラムにループでアクセスする方法ってありますか?
Test.find(1).each do |key, value|
#処理
end
このような処理はできないんでしょうか?
800:nobodyさん
12/02/01 10:24:09.07
自己解決しました。
attributesメソッドでハッシュが返ってきますね。
801:nobodyさん
12/02/01 21:36:14.66 MwDJMjTg
Twitter Bootstrapが大幅バージョンアップ!して凄まじいことに・・・ | IDEA*IDEA
URLリンク(www.ideaxidea.com)
URLリンク(twitter.github.com)
URLリンク(github.com)
802: 忍法帖【Lv=13,xxxPT】
12/02/01 23:04:02.37
!test
803:nobodyさん
12/02/02 11:31:58.44 ppveFy64
サイト重すぎてヤバイんですが、何かおぬぬめのてくにっくやとりあえずここみとけ!って対処法あります?
調べたところ
データベースアクセス周りが7割くらい占めてました
かるく調べたんですが
めむきゃっしゆ?
find_by_sql
インデックスをはる
あたりが王道のようですが、これでどのくらいかわるものですか?