[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 03/02 22:27 / Filesize : 202 KB / Number-of Response : 804
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【RoR】Ruby on Rails Part13



1 名前:nobodyさん mailto:sage [2011/11/04(金) 17:06:24.32 ID:???]
■前
【Ruby】Ruby on Rails Part12
hibari.2ch.net/test/read.cgi/php/1311050686/

■参考サイト
<英語>
本家:rubyonrails.org
API document:api.rubyonrails.com/
開発者のblog:weblog.rubyonrails.org/
参考wiki:wiki.rubyonrails.org/rails
ruby-toolbox.com/
rubygems.org/
agilewebdevelopment.com/plugins/top_rated

<日本語>
Rails' wiki: wiki.fdiary.net/rails/

twitter.com/dhh
www.loudthinking.com/

767 名前:nobodyさん mailto:sage [2012/01/25(水) 14:19:09.42 ID:???]
>>765
すみません、説明不足でした。
正確には、ある条件でデータを絞った後で、その中でのフィールドの最大値を取得したいということなのです。

まずFooというテーブルにbar、bazという2つのフィールドがあるとします。
イメージ的には、やりたい内容は以下のようなことです。
-------------------------------------
f = Foo.find_by_bar(○○○)

puts f.maximum('baz')
-------------------------------------

このやり方ですと、undefined method になります。

確かに、Foo.maximum('bar')という風に、絞り込んだものに対してではなく、直接最大値を取得するやり方ならうまく取れました。
絞り込んだものに対しては、maximumは使えないのでしょうか?


768 名前:nobodyさん mailto:sage [2012/01/25(水) 14:54:10.77 ID:???]
>>767です。
すみません、自己解決しました。
以下の方法で、条件を絞ったうえでの最大値を取得できました。

Foo.maximum(:bar, :conditions => {:baz => ○○○})

お騒がせしてすみませんでした;;

769 名前:nobodyさん [2012/01/25(水) 20:32:05.37 ID:CoUa4Jns]
>>767
ところでFoo.find_by_barだとfはFooのインスタンス1つになるわけだが。



770 名前:nobodyさん mailto:sage [2012/01/25(水) 21:57:29.42 ID:???]
railsの
model = Model.new(param[:prefix])
model.save()
ってやり方は、悪意あるユーザがフォームにないパラメータを送ると
意図しない属性も変更されてしまうと思うのですが、そんなことないですか。

771 名前:nobodyさん mailto:sage [2012/01/25(水) 22:04:45.35 ID:???]
mass assignできなくすれば大丈夫

772 名前:nobodyさん [2012/01/26(木) 05:29:31.01 ID:WYeK+tHX]
みなさんは高速化のためにどんな方法をとってますか?

例えば、ブログなんかで
最新のコメント

なーんてものがありますよね?

ああいう、頻繁に更新される可能性がある一箇所のせいで結構つらい思いをすることもあります
ログイン→ようこそ◯◯さん等もそうですが

いくつか考えたのですが、ページキャッシュしてしまい
そういった部分を全てAjax等で非同期読み込み

上でも出てたJavascriptでCookieを調べて割り振り
どちらも、Rails外での話なのでどうしても面倒くささを感じてしまいます……

773 名前:nobodyさん [2012/01/26(木) 07:00:43.56 ID:LIf9fd2V]
フラグメントキャッシュ使えし


ところで、フラグメントキャッシュって一定時間で破棄って出来ない?
5分で破棄したいのだけど……


774 名前:nobodyさん mailto:sage [2012/01/26(木) 11:45:32.46 ID:???]
>>771
>mass assignできなくすれば大丈夫
ありがとうございます。でもこれってデフォルトでは作る側がいちいち設定する必要があるんですよね。
設定しなかった場合は、悪意あるユーザからの攻撃をいとも簡単に受けてしまう。

なんでデフォルトで禁止してないんですかね。
ttp://d.hatena.ne.jp/halflife/20081006/1223302382
> みたいにmass assignmentを使ってしまうと、entry[user_id]=1 とか適当なパラメータを送るだけで誰か他のユーザの投稿として Entry を更新することができたりするわけで。
> もちろん手を抜くなとか忘れるのが阿呆だとかはあるかもしれないけど、わたしのような初心者には結構危なく感じた。
>
> なんでRailsはデフォルトでmass assignment不可にしないんだろう?
> デフォルト不許可にしてしまうと、スキーマが変更されるたびに合わせて attr_accessible を修正しなきゃいけないとかDRYじゃねえよウゼーという感じなんだろうか。


775 名前:nobodyさん mailto:sage [2012/01/26(木) 11:55:04.00 ID:???]
findした段階で大体防げるからなぁ。
@enty = current_user.entries.find(params[:id])
みたいに。
そう書いてないとダメだが。



776 名前:nobodyさん mailto:sage [2012/01/26(木) 12:28:43.36 ID:???]
>>772
最近ならそういった情報で更新されにくいものは
クライアントサイドのlocalStorageにいれてしまうってのもありだな
サーバーへアクセスされないからAJAXの負荷が無い


777 名前:nobodyさん mailto:sage [2012/01/26(木) 16:01:35.70 ID:???]
>>775
なんでそれで防げたことになるんですか?
今問題にしているのはcreateやupdateの話であって、findは関係ないような。

778 名前:nobodyさん mailto:sage [2012/01/26(木) 16:30:47.72 ID:???]
updateの時は初めにfindするし、
createでは
@entry.user_id = current_user.id
するだろ。
しなければもちろん外からセットされる。プロテクトしてなければ。

Railsに限った話ではなくて、そう作ればそうなるよという事。



779 名前:nobodyさん mailto:sage [2012/01/26(木) 18:58:14.63 ID:???]
>>778
もしかしてuser idのことだけ言ってますか?>>775
>findした段階で大体防げるからなぁ。
と言っているのが不思議だったんですけど、user id *だけ* みればそうかもしれません。
しかし774などで指摘していることは任意のフィールドに当てはまることであり、
「findした段階で大体防げる」ようなものではないんじゃないですか。



780 名前:nobodyさん [2012/01/26(木) 20:03:46.49 ID:RmSk4BIq]
rails3.2でcsvのfixtureを読み込まなくなって
移行しようにも苦労しているのですが
おすすめのcsv読み込みツールってありますか?


781 名前:nobodyさん mailto:sage [2012/01/27(金) 11:02:32.60 ID:???]
> >mass assignできなくすれば大丈夫
> ありがとうございます。でもこれってデフォルトでは作る側がいちいち設定する必要があるんですよね。
> 設定しなかった場合は、悪意あるユーザからの攻撃をいとも簡単に受けてしまう。

これで終わりじゃん

782 名前:nobodyさん [2012/01/27(金) 14:38:18.12 ID:lH99fQFB]
Riding Rails: Rails 3.2.1 has been released
weblog.rubyonrails.org/2012/1/26/rails-3-2-1-has-been-released

783 名前:nobodyさん mailto:sage [2012/01/27(金) 18:06:51.09 ID:???]
route.rbに関しての質問です。
pages/:idの:idの部分を、ユーザの名前にしたくて困っています。
route.rbを
match "'pages/:username" => "pages#show", :via => :get, :path => :name
にしてrake route すると、
pages/usernameというルートしかできず…
方法ご存知な方いらっしゃいますか?

784 名前:nobodyさん [2012/01/27(金) 22:26:17.58 ID: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さん mailto:sage [2012/01/28(土) 05:39:03.61 ID:???]
>>779
なぜわざわざ770みたいな脆弱な書き方を覚えてしまったのか
それは「横着な書き方」であって脆弱なのは当たり前だし、それでもRailsにはその脆弱さを防ぐ方法がいくつも備わってる

ちなみに775の言ってる事は俺も的外れだと思う



786 名前:nobodyさん mailto:sage [2012/01/28(土) 10:17:16.60 ID:???]
>>785
scaffoldが
foo = Foo.find(params[:id])
foo.update_attributes(params[:foo])
foo.save
みたいなコードを吐く以上、それがRailsの標準的なやり方と見なされてもしょうがない。
ところで
>それでもRailsにはその脆弱さを防ぐ方法がいくつも備わってる
って言ってるけど、具体的にはどんな方法があるの?
いくつもあるなんて知らなかった。


787 名前:nobodyさん mailto:sage [2012/01/28(土) 18:10:10.01 ID:???]
>>764

このサイト知らなかったな
微妙に間違っているが、すごい解説の量だ!

788 名前:nobodyさん [2012/01/28(土) 20:25:27.97 ID:kusQOV3z]
attr_accessible と attr_protected
blog.digital-squad.net/article/106792109.html

Use attr_protected or we will hack you - Blog Articles - LessEverything
lesseverything.com/blog/archives/2008/03/11/use-attr_protected-or-we-will-hack-you/







789 名前:nobodyさん [2012/01/28(土) 21:31:22.30 ID:kusQOV3z]
attr_accessibleは、ActiveModel::MassAssignmentSecurityの機能で、
newやらupdate_attributesやらでレコードの属性を「一括設定してもよい」属性を
指定するもの。逆に「一括設定を禁止」するattr_protectedとペアで考える。
read2ch.com/r/php/1292032736/#t508


790 名前:nobodyさん [2012/01/28(土) 21:47:54.91 ID:kusQOV3z]
assign_attributes
www.oiax.jp/rails/zakkan/assign_attributes.html

update_attributes
blog.livedoor.jp/sasata299/archives/51485638.html

791 名前:nobodyさん mailto:sage [2012/01/29(日) 14:01:57.04 ID:???]
れいるず、速習のコツを教えてくだされ。

792 名前:nobodyさん mailto:sage [2012/01/31(火) 07:44:07.71 ID:???]
RailsによるアジャイルWEBアプリケーション開発っていうすばらしい本が出てるからその通りにショッピングサイトを作ればオッケー

793 名前:nobodyさん mailto:sage [2012/01/31(火) 11:18:03.40 ID:???]
翻訳者宣伝乙

794 名前:nobodyさん mailto:sage [2012/01/31(火) 19:00:01.98 ID:???]
>>792
で、やってる途中で新バージョンが出る

795 名前:nobodyさん [2012/01/31(火) 21:42:32.22 ID:J/mA32Fb]
Rails Guidesでええやん。




796 名前:nobodyさん [2012/01/31(火) 22:06:34.42 ID: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.
37signals.com/svn/posts/3094-code-statistics-for-basecamp-next

37signalsのBasecampは米国企業上位500社の321社が利用中 ? SEO Japan
www.seojapan.com/blog/37signals-and-fortune500

Ruby on Rails開発者のDavid Heinemeier Hanssonによる「起業の学校」講演!
toshio.typepad.com/b3_annex/2008/04/ruby-on-railsda.html
2000人の顧客が月40ドルを12か月払えば、100万ドルになる。



797 名前:nobodyさん [2012/01/31(火) 22:10:27.23 ID:Nhw8SxC0]

Getting Real by 37signals
gettingreal.37signals.com/GR_jpn.php

798 名前:nobodyさん [2012/01/31(火) 23:23:30.79 ID:Nhw8SxC0]
twitter.com/#!/ike728/statuses/164164168839204865

www.sponichi.co.jp/gravure/special/ir_2010/ir_ikezawaasuka/KPhotoNormal20100731176_p.html



799 名前:nobodyさん mailto:sage [2012/02/01(水) 09:50:30.32 ID:???]
ActiveRecordで取得したレコードに対してeachメソッドみたいに全カラムにループでアクセスする方法ってありますか?

Test.find(1).each do |key, value|
#処理
end

このような処理はできないんでしょうか?

800 名前:nobodyさん mailto:sage [2012/02/01(水) 10:24:09.07 ID:???]
自己解決しました。
attributesメソッドでハッシュが返ってきますね。

801 名前:nobodyさん [2012/02/01(水) 21:36:14.66 ID:MwDJMjTg]
Twitter Bootstrapが大幅バージョンアップ!して凄まじいことに・・・ | IDEA*IDEA
www.ideaxidea.com/archives/2012/02/twitter_bootstrap_v2.html

twitter.github.com/bootstrap/index.html
https://github.com/twitter/bootstrap/


802 名前: 忍法帖【Lv=13,xxxPT】 mailto:sag [2012/02/01(水) 23:04:02.37 ID:???]
!test

803 名前:nobodyさん [2012/02/02(木) 11:31:58.44 ID:ppveFy64]
サイト重すぎてヤバイんですが、何かおぬぬめのてくにっくやとりあえずここみとけ!って対処法あります?

調べたところ
データベースアクセス周りが7割くらい占めてました

かるく調べたんですが
めむきゃっしゆ?
find_by_sql
インデックスをはる

あたりが王道のようですが、これでどのくらいかわるものですか?







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<202KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef