[表示 : 全て 最新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/

664 名前:nobodyさん mailto:sage [2012/01/16(月) 22:50:16.73 ID:???]
>>604です
結局他の認証ツールは情報が少ないのとrailsバージョン的にresthul_authenticationを使って行くことにしました
目標はユーザー登録、ログイン、ログアウト、adminのみアクセスできるページを作ることです。
www.aise.ics.saitama-u.ac.jp/~gotoh/NetBeansWithRestfulAuthentication.html
こちらのサイトを参考に、メール認証機能、パスワード変更機能、パスワード忘れ機能を省いて行く事に挑戦しようと考えました
mail.rb以降を飛ばしてpermissionの生成に移り、その他必要のなさそうな機能追加を無視して進めています

users_controller.rbのcreateやupdateをどうするべきかわからないのでアドバイスをもらえないでしょうか

環境は上記サイトとほぼ同じでsqliteでなくmysqlを使っています
またresthul_authenticationはプラグインでなくgemでインストールしました

665 名前:nobodyさん mailto:sage [2012/01/16(月) 23:50:09.16 ID:???]
なんかもう自分で自分のレスを見ていやになる・・・

すいません、>>664の質問はスルーでお願いします
もう時間もないのでアクセスできるコンピューターを限定して管理ページにだけ単純な認証機能をのせることで代用したいと思います
アクセス制限はapacheで公開するときに簡単に設定できるみたいですし・・・
スレ汚しすいませんでした

666 名前:nobodyさん mailto:sage [2012/01/17(火) 00:06:10.11 ID:???]
Deviseなら情報腐るほどあると思うけど…。
権限はcancanでも使えばいいし。


667 名前:nobodyさん [2012/01/17(火) 10:45:36.97 ID:xcCT9DhO]
マスタ/スレーブの冗長化の基本は4台1セット
d.hatena.ne.jp/uncafe/20110919

データベースのレプリケーション(複製)では、slaveに最低3台のサーバを適用している。
jibun.atmarkit.co.jp/ad/comp/112mitsu/01.html

668 名前:nobodyさん [2012/01/17(火) 10:51:58.18 ID:46QLTXdT]
2012年1月は、C#がC++を抜いて3位につけたことが特に注目される。C++は長期に渡って
緩やかな下落傾向にある一方で、C#は上昇傾向が続いており、特にここ数年は上昇傾
向が強くなっている。

今後しばらくは、C#とC++で順位の入れ替えを繰り返すものと見られるが、最終的には
C#が3位、C++が4位に落ち着く可能性が高い。また、Objective-Cも急成長を続けており、
この傾向が続いた場合には、C#、Objective-C、C++という順位に変わっていく可能性もある。

上記のほか20位以内に入ったプログラミング言語としては、Rが19位に、Luaが20位に
入った点が注目される。

特に、統計処理や統計データのグラフィック化などに利用されるRプログラミング言語は、
ここのところ注目が高まっている。Rの機能拡張が、Googleの支援によって実現したこと
などもその一因となっているものとみられる。

 1 Java       17.479 (-0.082) 18ヵ月連続1位
 2 C         16.976 (-0.081)
 3 C#         8.781 (+0.576) 3位へ浮上。上昇傾向
 4 C++.        8.063 (-0.189) 4位へ下落
 5 Objective-C   6.919 (+0.114) 上昇傾向
 6 PHP        5.710 (-0.291) 下落傾向
 7 (Visual)Basic  4.531 (-0.226)
 8 Python.      3.218 (-0.274)
 9 Perl.        2.773 (+0.301)
10 JavaScript    2.322 (+0.123)
11 Delphi       1.576 (+0.331)
12 Ruby.        1.441 (-0.053)

news.mynavi.jp/news/2012/01/12/058/

669 名前:nobodyさん mailto:sage [2012/01/17(火) 13:37:22.61 ID:???]
CoffeeScriptの中で、RailsRootのパスを取得することってできるのでしょうか?

670 名前:nobodyさん mailto:sage [2012/01/17(火) 14:14:16.72 ID:???]
そんなのが必要になってる時点で何かおかしい。

どうしても必要ならコントローラから渡したり、erbにして取ったりはできる。

671 名前:nobodyさん mailto:sage [2012/01/17(火) 15:19:16.77 ID:???]
>>669です。

>>670
「erbにして取る」と言いますと、どういうことでしょうか?


672 名前:nobodyさん mailto:sage [2012/01/17(火) 19:06:28.60 ID:???]
それくらいはググれ



673 名前:nobodyさん mailto:sage [2012/01/18(水) 13:43:28.80 ID:???]
すみません,質問させてください.
Railsで作成したプログラムからテーブルの列を変更することはできますか?

ユーザー側からテーブルの変更をできるようにしたいです.

674 名前:nobodyさん mailto:sage [2012/01/18(水) 14:11:45.08 ID:???]
できなくはないけど、あまりやらない。
migrationと齟齬出るし。
使ってるものによっては、アプリサーバの再起動も要る。
ある人が列消したりしたら、同時に使ってる人はエラーになる。
おとなしくphp*admin使えば?


675 名前:nobodyさん mailto:sage [2012/01/18(水) 14:15:42.32 ID:???]
住所録的なの作ってて,ユーザー側から項目追加できるようにしたいんですよね.
やっぱりmigrationで毎回保守してる人が回さないとダメかー

676 名前:nobodyさん mailto:sage [2012/01/18(水) 14:23:30.56 ID:???]
それはデータの持たせ方による。
あらかじめ多めにカラム取っておくとか。
一部のデータはjsonにしてtextのカラムに入れるとか。
検索必要ならviewみたいなの用意しとくとか。
住所録ならそんなに増えないでしょ。

677 名前:nobodyさん mailto:sage [2012/01/18(水) 14:32:14.43 ID:???]
今考えている代替案は,人名とフリガナだけ持ったモデル作って,has_manyで
項目ごとに独立したモデルを作る方法です.

[User]
name:string
furigana:string

[Attr]
attrname:string
attrdata:string
user_id:integer

な感じです.
で,別途AttrInfoモデルってのを作って項目の管理をする.
[AttrInfo]
attrname:string

正しいモデル図の書き方忘れちゃったから説明下手かもしれないですが,
そんな感じで子モデルとして項目を独立させる方法が楽かなぁと.
項目もフレキシブルな感じのほうがいいので..

今は,一つのフォームで複数の子モデル作成するとこで詰まってます.

678 名前:nobodyさん mailto:sage [2012/01/18(水) 14:43:48.36 ID:???]
nested_attributes_for で

679 名前:nobodyさん mailto:sage [2012/01/18(水) 15:22:08.27 ID:???]
くわしく知らないけどMongoDB向きなんじゃないの?

680 名前:nobodyさん mailto:sage [2012/01/18(水) 16:18:35.88 ID:???]
>>678
Thx.できました!

>>679
MongoDBまだ理解してないですが,今回はユーザーが
DB操作せずに項目の増減できるようにしたいのでこんな感じになってます.

681 名前:nobodyさん [2012/01/18(水) 22:57:41.69 ID:NIE7IPJ6]
rails3.1でherokuにあげたら、Application Errorになる。なぜ?

682 名前:nobodyさん mailto:sage [2012/01/18(水) 23:24:43.83 ID:???]
asset pipeline周りでは。コンパイルしてる?



683 名前:nobodyさん mailto:sage [2012/01/19(木) 06:35:32.69 ID:???]
Heroku | Dev Center | Rails 3.1 on Heroku Cedar
devcenter.heroku.com/articles/rails31_heroku_cedar
RAILS_ENV=production bundle exec rake assets:precompile

684 名前:nobodyさん mailto:sage [2012/01/19(木) 12:55:11.04 ID:???]
>>681
ログには何と?

685 名前:nobodyさん [2012/01/19(木) 19:03:02.74 ID:kCr+nbf2]
rails 3.0のEoLが何時までなのか調べても見当たらんのだが何時までなの?


686 名前:nobodyさん [2012/01/20(金) 01:48:49.34 ID:Bqw4Dvtw]
Controllerからviewで使うヘルパー類をエラー吐かずに使う方法ってありますか?

html_escapeとかはERB::Util.で行けるけど
image_tagとかそこらへんが使えなくて困ってます
include AssetTagHelperで行けるのかと思ったけど見つかりませんと言われるし



687 名前:nobodyさん mailto:sage [2012/01/20(金) 07:40:20.22 ID:???]
なんでそんな事したいの?
viewを使いたくない理由とは

688 名前:nobodyさん [2012/01/20(金) 09:40:22.52 ID:6rMlMhcM]
>>687
Viewを使いたくないのではなくて、負荷を軽減するために
予めHTMLに変換してしまってDBに保存したいです



689 名前:nobodyさん mailto:sage [2012/01/20(金) 10:25:14.23 ID:???]
それだとDBの負荷が上がるのでは。
Railsのキャッシュ使うのはダメなの?


690 名前:nobodyさん mailto:sage [2012/01/20(金) 10:47:01.04 ID:???]
>>688
どう考えてもページキャッシュしたほうが負荷が低いな


691 名前:nobodyさん [2012/01/20(金) 10:57:41.22 ID:6rMlMhcM]
>>689,690
言うなれば2chの掲示板みたいな機能でして
URLや画像をタグ化した状態で保存したいです

DB負荷を避けるために一定条件でDat落ちさせ
後ほどそれをテキストファイルに書きこんでdat化する作業もあるので結果的に楽なのです………




692 名前:nobodyさん [2012/01/20(金) 15:06:46.25 ID:0HmqnXsV]
moduleなんだからincludeすりゃ使えるだろ




693 名前:nobodyさん mailto:sage [2012/01/20(金) 19:37:05.84 ID:???]
>>691
ページキャッシュやフラグメントキャッシュがタグ化した状態で保存する機能なのだが
キャッシュのこと知らないで書いてるだろ


694 名前:nobodyさん mailto:age [2012/01/21(土) 02:32:19.08 ID:???]
3.2リリースage
Agile Web development with Rails のebookも更新されとる。


695 名前:nobodyさん [2012/01/21(土) 05:46:25.13 ID:vuwYpWFi]
Riding Rails: Rails 3.2.0: Faster dev mode & routing, explain queries, tagged logger, store
weblog.rubyonrails.org/2012/1/20/rails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store


https://twitter.com/#!/dhh/status/160412306537328640


696 名前:nobodyさん [2012/01/21(土) 09:23:29.82 ID:rw9MCCDR]
>>692
申し訳ありません、どれをIncludeすればいけますか?
先程書いたとおりassetHelperでは無理でした


>>693
ページキャッシュはしってますよ
でも、ページキャッシュではなくDBに保存しなければならないのです
そういう仕様なのでそう作らないと怒られるのですよー

他にも escape_javascriptをcontroller内で使いたいとか色々あると思うんです

697 名前:nobodyさん mailto:sage [2012/01/21(土) 09:29:06.70 ID:???]
そんなレールから外れるような仕様は糞だ!って進退伺と一緒に稟議書あげろ。

698 名前:nobodyさん mailto:sage [2012/01/21(土) 09:38:50.70 ID:???]
>>696
ページキャッシュで出来るHTMLをDBに入れればいいんじゃないの?

699 名前:nobodyさん mailto:age [2012/01/21(土) 09:41:24.26 ID:???]
cache_store をデータベースにしてreadでもwriteでもすればいいんじゃない?
ActiveSupport::Cache::Store を継承して要求しようにあったストアを作る。


700 名前:nobodyさん mailto:sage [2012/01/21(土) 09:44:14.53 ID:???]
https://github.com/mperham/dalli

devcenter.heroku.com/articles/memcache

701 名前:nobodyさん mailto:sage [2012/01/21(土) 09:47:01.40 ID:???]
gem install dalli

require 'dalli'
dc = Dalli::Client.new('localhost:11211')
dc.set('abc', 123)
value = dc.get('abc')

702 名前:nobodyさん mailto:sage [2012/01/21(土) 09:56:31.70 ID:???]
>>696
全然センス無いクソ仕様だな。
DB重くなるだけじゃん。
ページキャッシュの方が速いし軽い。



703 名前:nobodyさん [2012/01/21(土) 23:00:45.95 ID:vuwYpWFi]
www.onas.asia/home/kwansaiit/doc/
www.onas.asia/home/kwansaiit/doc/Kwansai-IT-Benkyo-Enkai_2012-01-13-Shimoji.pdf

rubyの全くあたらしいフレームワーク
atnd.org/events/24013


704 名前:nobodyさん [2012/01/21(土) 23:03:51.32 ID:vuwYpWFi]
<オープンソース Rubyフレームワークのご紹介>
kwansaiit.blogspot.com/2012/01/2012-01-1314it.html


705 名前:nobodyさん mailto:sage [2012/01/22(日) 00:32:20.37 ID:???]
rubyしてる人って、新しい情報をドヤ顔で共有したがる傾向が強いよね


706 名前:nobodyさん mailto:sage [2012/01/22(日) 00:58:43.15 ID:???]
みんな使ってるのはApache?

すごい重いんだけどおすすめなにかない?

707 名前:nobodyさん mailto:sage [2012/01/22(日) 01:22:57.72 ID:???]
それだけでは判断できんわ。
メモリの量とかCPUとかディスクにもよるし。
メモリの使い具合にも、SQLにもよるし。


708 名前:nobodyさん mailto:sage [2012/01/22(日) 02:05:42.97 ID:???]
>>705
rubyの方は極めて保守的だと思うよ。
Railsはそういう傾向あり。

709 名前:nobodyさん mailto:sage [2012/01/22(日) 06:31:01.16 ID:???]
>>707
CPUは常時50%くらい
メモリも常に1Gは余ってる(4GB)
IOもそんなに多くない

でも、めっちゃ重いんだ

710 名前:nobodyさん mailto:sage [2012/01/22(日) 09:25:06.68 ID:???]
必要なとこにindex張ってないとか


711 名前:nobodyさん [2012/01/22(日) 10:44:06.70 ID:sE8mL0/v]
モデルに
rails generate migrate add_カラム名_to_テーブル名 カラム名:型
って書くと思うんですが、
カラム名の中にアンダーバーを使いたい場合はどう書けばいいのでしょうか?



712 名前:nobodyさん mailto:sage [2012/01/22(日) 11:54:22.60 ID:???]
711です。
アンダーバーを使わずcamel caseで書けばいいのですね、
おさわがせしました。





713 名前:nobodyさん mailto:sage [2012/01/22(日) 12:47:08.93 ID:???]
>>708
rubyはバージョン間の互換性が凄く低い
とてもじゃないけど、保守的とは思えない

学生の文化祭ノリで言語作ってるから性質が悪い

714 名前:nobodyさん mailto:sage [2012/01/22(日) 12:55:48.13 ID:???]
>>705
前向きに言い換えよう
新しい情報をドヤ顔で共有する勇気!

715 名前:nobodyさん mailto:sage [2012/01/22(日) 13:06:10.63 ID:???]
>>713
それは感じた事ないな。
1.8系と1.9系は中身かなり違うが、書く分には対した違いではない。
遥か昔の1.4とかに比べても、そんなに変わってないと思う。1.6辺りからだと尚更。

MLに「こうしたら?」みたいな提案はよくあるけど、かなりの確率でmatzにリジェクトされてる。

昔はserializeしたデータにバージョン間で互換性がなくて実質使えなかったが、そういうのも聞かなくなった。

学生ノリはPHPとかスゴいよね。
関数名のアンダーバーをバージョン上がる毎に付けたり取ったり。


716 名前:nobodyさん mailto:sage [2012/01/22(日) 13:13:09.46 ID:???]
Railsの変化は速すぎ。
枯れてから使おうとか考えてる人には合わない。
仕事でもプロジェクト開始後にバージョン上げたりするし。
もちろんテストがあればこそできる話。


717 名前:nobodyさん [2012/01/22(日) 13:24:18.85 ID:sE8mL0/v]
yml-mode.elってどこにありますか?

yaml-mode.clouder.jp/
ここみてもみあたらないんですが・・・・


718 名前:nobodyさん [2012/01/22(日) 13:25:30.57 ID:sE8mL0/v]
すみません。elispのとこにありました


719 名前:nobodyさん mailto:sage [2012/01/22(日) 13:27:49.79 ID:???]
Rails の Symbol#to_proc がrubyに入った時はビックリしたわ。
新しい流れだなと。

720 名前:nobodyさん [2012/01/22(日) 13:33:23.09 ID:kpA61za+]
"Ruby"じゃなくて"Rails"の互換性ってどうなの?
Rails1.2からRails3.1に移植したら大変かな?

721 名前:nobodyさん mailto:sage [2012/01/22(日) 13:45:54.13 ID:???]
>>715
PHPはとってつけたような関数が多すぎるのがな。

722 名前:nobodyさん mailto:sage [2012/01/22(日) 13:46:36.87 ID:???]
>>720
かなり大変。
2系から3系で結構苦労した。



723 名前:nobodyさん mailto:sage [2012/01/22(日) 13:53:49.66 ID:???]
>>720
無茶苦茶大変。
DBだけ残して新しく作る方が楽かも。
もしくはDBも新しくして、移行プログラム走らせるとか。
habtmみたいな、もう誰も使ってないのが使われてそう。

いずれにしろスキル要るし、1系から3系まで知ってる人はそんなに居ない。



724 名前:720 mailto:sage [2012/01/22(日) 14:04:05.41 ID:???]
>>722-723
うわ、ありがとう
じゃ、覚悟しとくわ
まず一度移植にトライしてみて
ダメだったら1から新しく作るわ

725 名前:nobodyさん mailto:age [2012/01/22(日) 15:20:26.03 ID:???]
1から3まで全部知ってる人を見つけたからって移植を頼むなよ。絶対に頼むなよ。


726 名前:720 mailto:sage [2012/01/22(日) 16:54:14.92 ID:???]
あ、今Wiki見て知ったけど、
昨日1月20日に最新版Rails3.2出たんだな

>>725
ということで、Rails1.2からRails3.2への移植でおながいします

727 名前:nobodyさん mailto:sage [2012/01/22(日) 17:12:54.33 ID:???]
どうやったら行けるかね。
もうrake rails:updateとか無理だから、
新しく3.2でプロジェクト作る。
app/ とかを古い方から持ってくる。もしくは新しい方から、Gemfile や config周り持って行く。
routes 移植。
プラグイン周りとか移植。

最後のは移植しないで、例えば新しいプラグイン入れて、認証のencryptのとこだけ差し替えるとか。

どちらにせよ、茨の道。

728 名前:nobodyさん mailto:sage [2012/01/22(日) 19:09:32.81 ID:???]
https://github.com/goncalossilva/rails3_acts_as_paranoid

729 名前:nobodyさん mailto:sage [2012/01/22(日) 19:58:58.08 ID:???]
そんなに移植って大変かなあ?
具体的にどの辺りが大変だったのか参考までに聞きたい
Ajax周りは3系でガラッと変わったから面倒だったけど

730 名前:nobodyさん mailto:sage [2012/01/22(日) 22:21:01.46 ID:???]
Railsで、同じURLに対して、
・ブラウザでの通常のアクセスと
・JavaScriptとかでやってくるAPI的なアクセス
をコントローラ側で区別したい場合、どういうふうにするんでしょうか。
(a) Acceptヘッダーを見るのか、
(b) 独自にX-FooBarヘッダーをつけるのか
(c) *.jsonや*.xmlへのアクセスはAPIと見なすのか
よろしくお願いします。


731 名前:nobodyさん mailto:sage [2012/01/22(日) 22:31:37.18 ID:???]
params[:format]

732 名前:nobodyさん mailto:sage [2012/01/22(日) 22:41:09.29 ID:???]
自分は(c)でやってる。
(a)とか(b)だと使いまわしが面倒じゃない?



733 名前:nobodyさん mailto:age [2012/01/22(日) 23:19:32.46 ID:???]
要求仕様によるけど、 xhr? で間に合うケースもあるかもね。



734 名前:720 mailto:sage [2012/01/23(月) 00:46:09.88 ID:???]
>>727 (>>729)
どうもぉ〜
さっき本屋で立ち読みしてきたけど
Rails3.1の仕様もそ〜んなに変わってるようには見えなかった
でも、rhtml → erbまで違うとはね・・・

ま、多分、コンテンツになる部分だけ残して
あとは全部Rails3.2で作ることになりそう
インフル罹ったみたいなんで寝ますわ・・・

735 名前:nobodyさん mailto:sage [2012/01/23(月) 01:30:53.30 ID:???]
>>730
APIとブラウザの違いというか、返すデータの種類が違うなら
UAではなく求められているデータの種類で分けるべきでは
要求されてるものがブラウザがHTMLでAPIがjsonやXMLなら
:formatが違うから(そのようにするべきだろう)
単にrespond_toで分ければいいだけだろ


736 名前:nobodyさん mailto:sage [2012/01/23(月) 02:34:29.77 ID:???]
>>735
返すデータの種類を、拡張子で判断するよりも、Acceptヘッダーを見るほうが、本来は正しいあり方なんじゃないでしょうか。
/foo/bar/123
/foo/bar/123.html
/foo/bar/123.xml
/foo/bar/123.json
これらは、ほんらいは同じリソースのはずで、単に表現形式が違うだけにすぎない。
なのに別々のURLを割り当てるのは、おかしいように思います。

737 名前:nobodyさん mailto:sage [2012/01/23(月) 08:24:44.75 ID:???]
リソースにURIを割り当てるのがRESTの考え方だからねぇ。
jsonが欲しければ.jsonで取るのは自然だと思うよ。
フォーマットが違うだけだし。


738 名前:nobodyさん mailto:sage [2012/01/23(月) 08:30:21.94 ID:???]
ヘッダを変える方法だと、ブラウザでの操作がしにくくなる。


739 名前:nobodyさん [2012/01/23(月) 09:52:44.98 ID:X3Xu6cIF]
RESTだから。としかいいようがないな。

740 名前:nobodyさん mailto:sage [2012/01/23(月) 10:47:27.27 ID:???]
Acceptは受け入れ可能なフォーマットを書くところであって要求を書く場所じゃないから

741 名前:nobodyさん mailto:sage [2012/01/23(月) 20:43:45.49 ID:???]
>>737
>フォーマットが違うだけだし。
だから違うURLを使うのはおかしいって話でしょ。
表現が違ってもリソースはひとつなんだから、本来ならURLもひとつにすべき。


742 名前:nobodyさん mailto:sage [2012/01/23(月) 21:08:30.69 ID:???]
じゃあAcceptで実装したらいいんじゃないの。
そこまで考えまとまってるなら別に他がどうとか気にする必要ないよ。



743 名前:nobodyさん [2012/01/24(火) 11:10:30.83 ID:rjvP9n7H]
Rails3.1何ですけど
プリコンパイルを一切使わない設定って出来ませんか?

CSSでクロスブラウザ対策してたりするとコンパイルこけるし
色々不便なので一切使わないようにしたいのですが

744 名前:nobodyさん mailto:sage [2012/01/24(火) 14:23:23.89 ID:???]
asset pipeline使わないという事なら、config/application.rb に設定ある。
他は、 config/environments/production.rb


745 名前:nobodyさん mailto:sage [2012/01/24(火) 15:01:11.36 ID:???]
/publicに置けばいいんじゃないの
それだとhelperが使えないんだっけ?

746 名前:nobodyさん [2012/01/24(火) 15:24:13.68 ID:R2GYQ8Ee]
https://github.com/sferik/rails_admin

railscasts.com/episodes/284-active-admin?language=ja&view=asciicast



747 名前:nobodyさん [2012/01/24(火) 17:34:59.60 ID:/isHqZPr]
railsに関する質問ってここでしてもいいんですかね?

748 名前:nobodyさん mailto:sage [2012/01/24(火) 17:52:55.66 ID:???]
ダメに決まってるだろ

749 名前:nobodyさん [2012/01/24(火) 18:08:32.06 ID:/isHqZPr]
>>748

そ、そんな
だめなんですか

特例でおしえていただきたいんですが

750 名前:nobodyさん [2012/01/24(火) 18:13:03.92 ID:/isHqZPr]
とりあえずかきこんじゃいます。

今ちいさなアプリケーションをrailsで作っているのですが、

formにメッセージを書き込む際に
あわせて書いた人のユーザーid を取得したいのですが、
どこに記述してよいかわかりません。

formの一部を抜粋するとこうなってます↓

<div class="field">
<%= f.label :message %><br />
<%= f.text_area :massage %>
</div>

お願いいたします

751 名前:nobodyさん mailto:sage [2012/01/24(火) 18:14:55.52 ID:???]
押しが強くてワロタ

752 名前:nobodyさん mailto:sage [2012/01/24(火) 18:16:14.91 ID:???]
massage エロス
あとユーザIDってのは自分で入力させるの?
それともセッションかどっかに入ってるの?



753 名前:nobodyさん [2012/01/24(火) 18:22:49.82 ID:/isHqZPr]
押し強くてごめんなさいw
分からなくてすごく困ってたんですw

ユーザーのidは書いているユーザー一人一人が持っていて、
<%= current_user.id %>
とかけば出力されます。

理想としてはメッセージを送ると自動でuser_idもDBに送られるようにしたいです。。

754 名前:nobodyさん mailto:sage [2012/01/24(火) 18:54:33.22 ID:???]
Railsでは普通、idは入力させたり、フォームから送るものではない。
セーブした時にDBから割り当てられるもの。

もし、任意のid(初心者ならこのカラム名はやめた方が良い)を入力させるなら、
重複が無いかなどを調べないといけない。


755 名前:nobodyさん mailto:sage [2012/01/24(火) 18:57:49.67 ID:???]
んーと、送り主のidはフォームからは普通送らない。
コントローラで current_user.id とかやって、メッセージにセットする。


756 名前:nobodyさん [2012/01/24(火) 19:16:19.62 ID:/isHqZPr]
idはuserテーブルののidをとりあえずmessageテーブルにuser_idとしてながしこみたいのです…

コントローラーでやるんですね、
ちょっといろいろためしてみます!

757 名前:nobodyさん [2012/01/24(火) 19:31:55.63 ID:/isHqZPr]
書き方がわからなかったので、フィーリングで、
コントローラーのdef createところに
@message = Message.new(params[:Message])
params[:user_id] = current_user.id

とかいたのですが、うまく動かず…orz


758 名前:nobodyさん mailto:sage [2012/01/24(火) 19:33:23.03 ID:???]
params に渡してどうするのよ。
message に渡しなよ。
@message.user_id = current_user.id

759 名前:nobodyさん [2012/01/24(火) 19:38:15.04 ID:/isHqZPr]
うおおお ちゃんと登録されました!

た、助かりました…!ありがとうございます

760 名前:nobodyさん mailto:sage [2012/01/25(水) 01:09:22.67 ID:???]
そういや>>736あたりの話なんだけど、
Railsでは /foo/123 には /foo/123.xml とか /foo/123.json とか :format がつけられるじゃん?
これって、コンテナリソースにはつけられるの?
つまり /foo/.xml とか /foo/.json とかはできるわけ?
それともコンテナリソースに対して xml や json を要求する場合はまた違う方法になるの?

761 名前:nobodyさん mailto:sage [2012/01/25(水) 07:42:06.57 ID:???]
index.json

762 名前:nobodyさん [2012/01/25(水) 08:11:31.32 ID:CoUa4Jns]
foos.xml とか foos.json




763 名前:nobodyさん mailto:sage [2012/01/25(水) 10:11:00.50 ID:???]
config/route.rbでどうとでもできるからな


764 名前:nobodyさん mailto:sage [2012/01/25(水) 11:16:46.09 ID:???]
テーブルの、あるフィールドの最大値を取得したいのですが、うまくいきません。。。

たとえばFooというテーブルのbarというフィールドの最大値を取得したいときは、以下のように書けば良いらしいのですが・・・

Foo.maximum('bar')

しかしながら、こう書くと『no method error』になるのです。
こちらの環境はRuby1.9.3、Rails3.1.3です。

maximumメソッドについては、以下のサイトで見つけました。
railsdoc.com/references/maximum

これによると3.1.0までは対応しているようですが、3.1.3にはもうmaximumはないということでしょうか?


765 名前:nobodyさん mailto:sage [2012/01/25(水) 13:21:04.50 ID:???]
普通に取れるけど。3.1.3と3.2.0で試した。
そのフィールド無いんじゃないの?

766 名前:nobodyさん [2012/01/25(水) 14:04:53.51 ID: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さん 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