【Ruby】Ruby on Rails Part8at PHP
【Ruby】Ruby on Rails Part8 - 暇つぶし2ch381:nobodyさん
09/11/07 19:06:05
>>373
>>じゃあ再起動しなくていいはず
逆。OSには返してないわけだから、基本的にOSから見た
プロセスが食うメモリってのは増える一方。


382:nobodyさん
09/11/07 19:46:08
freeしてもOSにメモリを返却するってわけじゃないんだよな。
プロセスのメモリサイズをいじるのはsbrkとかbrkだっけ?


383:nobodyさん
09/11/07 20:08:11
>>379
自分には関係ないけど
なるほどーと思った

384:nobodyさん
09/11/07 21:19:04
>>379
宣言的に見えるけど、実のところnamed_scopeもただの
メソッドだからな。


385:nobodyさん
09/11/08 02:45:09
qmailで受信して、.qmailのパイプ経由で
script/runnerしてメール処理をしてるのだが、
一度受信したメールが何度も繰り返し送られてくる。

これって、こういうものなのかな?
それとも的確な処理をしてないから?


386:nobodyさん
09/11/08 02:58:14
受信したら消せよ

387:nobodyさん
09/11/08 03:13:16
うそん

388:nobodyさん
09/11/08 03:16:34
外部から何度も送られてくるのよ。
受信したメールをコマンドで処理するのみで
保存しないようにしても症状は同じ。

受信したときに相手のサーバに的確なメッセージを
返してあげないとダメなのかな?
そういうのはqmailが勝手にやってくれてると思うのだけど…

389:nobodyさん
09/11/08 10:25:46
>>388
> そういうのはqmailが勝手にやってくれてると思うのだけど…

おいおい


390:nobodyさん
09/11/08 11:28:57
これがruby厨

391:nobodyさん
09/11/08 14:55:17
そんなくれくれruby厨に助言してくれよう。
終了コード0返すだけじゃだめなの?

392:nobodyさん
09/11/08 16:35:04
ActiveRecord::Migration.execute('CREATE TABLE hoge (・・・); CREATE INDEX ・・・;')
とかしてもインデックス作られないんだけどCREATE TABLEだけしか実行してくれないの?

393:nobodyさん
09/11/08 18:22:12
そんな事はない。
インデックスも正しく作成される。
その前にマイグレーションを使っているのに、わざわざSQLを直接実行するのはなんでだ?


394:nobodyさん
09/11/09 20:11:21
Railsではidを渡すところに大概は、Hoge.find(id) した後のオブジェクトを渡しても
自動でidに変換してよしなに計らってくれますよね?

例えば、Hoge.find自身もintegerなidじゃない Hoge.firstの返り値などでも通ります。
これを自分の処理でも使いたいのですが、該当するメソッドはないものでしょうか?

ActiveRecordのfindのソースとかたどって見ているのですが、
いまいちわからんとです・・・

環境はRuby 1.8.7、Rails 2.3.4です。

395:nobodyさん
09/11/09 21:43:53
>>394
まずは active_record/base.rb の AR::Base#find から find_one / find_some などを経て
def quote_value(value, column = nil)
  self.class.connection.quote(value, column)
end

これは、active_record/connection_adapters/abstract/quoting.rb の
def quote(value, column = nil)
  # records are quoted as their primary key
  return value.quoted_id if value.respond_to?(:quoted_id)
:
かな。

で、AR::Base に戻って
def quoted_id #:nodoc:
  quote_value(id, column_for_attribute(self.class.primary_key))
end


396:nobodyさん
09/11/09 21:58:57
んなもんソース見るまでもなくね?

397:nobodyさん
09/11/09 23:09:34
見ないでどうやってしらべんの

398:nobodyさん
09/11/10 04:32:44
んなもん調べるまでもなくね

399:nobodyさん
09/11/10 12:23:52
初心者スレか本スレに帰れ

400:nobodyさん
09/11/10 15:45:57
>>395
無事動作を確認できました!

 Item.quote_value(1234) => "1234"
 Item..quote_value(Item.first) => "1"

みたいにいけますた。何故か文字列ですがw

find_oneやfind_someになんであるのに、見つけられなかったんだろ、と
ドキュメントを思ってよく見たら
railsのchmファイルって、メソッドのソース表示は長い行だと折り返されないで、
画面外にでてって表示されないっぽいですね orz

他の場面でもソース見ててハマりそうだ・・・。
この辺てCSSとか直したらなんとかなるんかな。

401:nobodyさん
09/11/10 16:15:53
「SQL文の条件句に埋め込む数値の表現」なので、
最終的に文字列が得られるようになってるのよ。


402:nobodyさん
09/11/10 16:23:20
>>401
ああ、確かにドキュメントに

> Quote strings appropriately for SQL statements

と書いてありますね。

quote_~~ってメソッドたくさんあるし、なんのことかと思ったら、
SQLのためのクォート処理なんですね。
勉強になりました。

privateメソッドですし、期待する機能と名前が一致しない点もアレなのですが、
とりあえずは実現できるので ActiveRecord::Base::quote_value を使ってみます。
帰り値の文字列はto_iすればいいですし。

ありがとうございました。

403:nobodyさん
09/11/10 20:20:41
質問よいですか?

URLに&hoge=true
といったように、フラグや状態(日付とかでもいいです)を記載して、
しばらく、一定のページ遷移まで、&hoge=trueのGETパラメータを付加しつづけるよい方法はありませんでしょうか?

クッキーがいいかと思ったのですが、状態の違うページをいくつか開いた際に破綻してしまいます。

今は、form_forなどの引数にパラーメータを一個一個渡しています。
手動なのでけっこうミスがでてしまいます。
以下のような感じです。

view側:
<% form_tag({:action => :edit, :id => @item}.merge(hoge_params_hash)) do %>

<% end %>

コントローラー側:
helper_method hoge_params_hash
private
def hoge_params_hash
  params[:hoge] ? {:hoge=> params[:hoge]} : {}
end

例として、ブログやCMSのプレビュー用のモードというか、プレビューボタンを押した後指定のページ遷移までは
フラグ立てたまま処理する(「プレビュー中です」のような表示をしたい)というような場合や

食べた食品を記録するサイトで、ある日に記録するデータを検索窓から検索した場合、
その検索後のページ場合もそのある日を覚えておいて、記録時に使いたいといった場合です。

設計の問題なのかもしれませんが、ぜひご助言ください。

404:nobodyさん
09/11/10 22:01:55
formならhiddenでいいんじゃね?


405:nobodyさん
09/11/10 22:09:57
セッションに保存するのが駄目な理由が分からん。
application_controllerにチェックするメソッド定義して、各コントローラでfilterで呼ぶとか。
filterを工夫すればいいんじゃないの?

406:nobodyさん
09/11/10 22:11:23
>>403

例えば、link_toの場合は、こんな感じで書くとGETパラメータを付加してくれる。
formでも同じ事ができるかは分からないが。
<%= link_to("編集", :action => :edit, :id => @item, :params => params) %>

407:403
09/11/11 09:59:21
>>405
そういうことが聞きたいのです。

セッションだと、
>>403の下のブログやCMSの例でいえば、プレビューと実際の画面表示のコードを共有していた場合、
プレビュー中に、実際の画面みようとしてもプレビュー表示になってしまいますよね。

食品の記録サイトでいえば、別のタブで同時に別の日を入力しようとしていた場合、
セッションにある値しかつかわれないので、セッションにある日しか同時に入力できないことになります

つまり、セッションだと状態を1つしかもてない、という意味なのですが・・・

ま、仕様です、と言えば、それでもいいのかもしれませんがw

>>406
あ、いえ、今もそんな感じでやってるんです。

>>403のコード例がわかりにくいのですが、
form_tag でGETパラメータを指定しています。
ただし、指定するかは今のページのGETパラーメータを見てから。

>>404
確かにformならhiddenでもいいですね。GETパラメータでやらなくてもいいか

408:nobodyさん
09/11/12 03:49:23 K53v7ACD
ファイルをアップロードするときってform_tagとかfile_fieldを
つかってファイルを選ぶ方法しかないのでしょうか?
クライアントがパスを書いてそこにあるファイルをサーバに保存する
ことは不可能ですか?

409:nobodyさん
09/11/12 04:51:31
可能

410:nobodyさん
09/11/12 15:35:06
/etc/passwdとか上書き出来たら楽しいね。

411:nobodyさん
09/11/12 15:36:59
当たり前のような質問があります。

HogeControllerがあり、publicなメソッドとしてFoobarを新たに追加しました。
デフォルトのルーティングだと、
 /hoge/foobar
でアクセスできるのですが、プログラム上からは
 foobar_hoge_path()
が使えません。

rake routesしても載ってないのですが、
これって、routes.rbに

 map.resources :hoge, :member => { :foobar => :get }

などとかかなくてはいけないものなのでしょうか?

412:nobodyさん
09/11/12 22:47:21
find_by_sqlで複数のSQLを実行したとき
返ってきた結果セットがほぼ同時に別プロセスで
実行していた別なSQLのものに変わってしまっています。
mysqlの設定などでチェックすべきところとかないでしょうか?

413:nobodyさん
09/11/12 23:21:24
>>411
無指定の map.resources だけだとそこまで面倒みてくれない。
map.resources に追加するか、昔ながらのやり方で

map.foobar_hoge 'hoge/foobar', :controller => 'hoge', :action => 'foobar'

のように定義してやるとか。


414:nobodyさん
09/11/12 23:37:15
トランザクションとかストアドプロシージャだろうか
やったことないけど

415:411
09/11/14 04:27:35
>>413
ありがとうございます。
こちらでも試してみましたが、やはり、必要なのですね。

>>411のは間違ってまして、/hoge/foobarの場合は、
 map.resources :hoge, :collection => { :foobar => :get }
でした。
/hoge/1/foobarなら、>>411のでいいみたいです。

416:nobodyさん
09/11/17 14:03:16
ちょっと聞いていいでしょうか?
psousa's baseapp-orange at master - GitHub
URLリンク(github.com)

以前でてたBaseAppというRailsのテンプレみたいなのの派生verがあるのを発見して
動かしてみようと思ったんですが、うまく行きません。

READMEにあるように、mysql用のdb設定をdatabase.ymlにして、
rake db:migrate
したのですが、

 Missing these required gems:
  capistrano-ext

と言われてしまいます。
vendor以下を見るとfreezeされているのか、必要なgemなど全部入っているようなのですが、このように言われます。

config/enviroment.rb には、
 config.gem "capistrano-ext", :lib => "capistrano"
のような記述があり、
 rake gems:install
とするのですが、何ごともなく終了します。

どうしたものでしょうか?

417:416
09/11/17 14:16:18
>>416 ですが、
ないならgemいれればいいんじゃね?という当たり前の結論で、
 gem install capistrano-ext
したら、無事に通りました。(db:migrateでDBないと言われたので、rake db:createしましたら行けました)

しかし、何でこんな動作になっているのだろう?

なるべくシステムに入っているgemを使いたいのですが、満載のvendor/gems以下や、vendor/rails以下は
手動で削除しちゃっていいものなのでしょうか?

418:nobodyさん
09/11/17 16:12:30
rails 2対応の初心者用参考書でお勧めはどれですか?

419:nobodyさん
09/11/17 16:13:42
既存のapache管理下のものに影響与えないように導入することはできないのでしょうか

420:nobodyさん
09/11/17 18:37:57
>>418
>>350がいいんじゃないかと思う

421:nobodyさん
09/11/17 22:36:49
>>419
影響ってどういう意味?

422:nobodyさん
09/11/18 02:13:20
restful_authenticationを使ってログイン認証を行おうと思ってるんですが、
画面の遷移がない場合5分経ったらセッションを消してログアウト状態にしたいと思っています。

以前はacts_as_authenticatedを使って、ログインされたらデータベースのsessionテーブルにユーザーの
session情報を保存しておいて、ユーザーが画面遷移をしたら、そのsession情報を更新しておき
5分おきにsessionテーブルを監視して、更新時間が5分以上経ってたらsessionテーブルから削除するようにして
ログアウト状態を再現していました。

restful_authenticationを使う場合は、データベースに値を持たなくても上記のような事ができるのでしょうか?
すみませんが、お知恵をお貸しください。宜しくお願いします。

423:nobodyさん
09/11/18 17:36:25 8qlvL/3i
都道府県のデータをRubyの配列で用意しようと思うんだけど、
どこのファイルにおくのがおすすめでしょうか。

JP_STATES = [
'北海道',
'青森’,
...
]

こんな感じのデータです。

424:nobodyさん
09/11/18 18:51:10
Railsアプリのルートディレクトリを表す変数とかありませんか?

425:nobodyさん
09/11/18 22:12:48
>>422
restful_authentication自身にはそういった機能はなかったはず。
データベース側をきっちり削除したいなら自前で実装するのがいいだろうね。
クッキーのexpireでいいなら、2.3以降ならActionController::Base.sessionの:expire_afterを指定、
それ以前ならdynamic_session_expプラグインを使えばいい。

>>423
2.0以降なら config/initializers以下に。
それ以前ならconfig/environment.rbやconfig/environment/*.rbに直書きするか
config/以下にファイルを置いてenvironment.rbなどからrequire。

>>424
RAILS_ROOT

426:nobodyさん
09/11/18 22:14:23
いまは Rails.root でもOK

427:nobodyさん
09/11/19 00:14:02
Wikiみたいなアプリで、文字列をHTMLに変換する処理をParserとしてモデルに切り分けたいのですが
url_forとかhoge_urlとかはモデルから使えないので、リンク生成をどうしたものかと思っています。
config/routes.rbの設定と重複しないために、できればURL生成メソッドで作りたいのですが
どうにかできないでしょうか?

428:nobodyさん
09/11/19 15:24:41
>>427
モデルじゃなくて(モデルでもいいけど)、
ふつうのライブラリみたいに lib/以下にParserとしておいて、
コンストラクタでコントローラーのインスタンスを渡す、とかどうだろか

lib/以下に置く時の注意は、moduleにしてRailsが想定する名前の付けか足しておくと、
requireとかしなくても、自動で読んでくれる。はず。
詳しい方きぼん

429:nobodyさん
09/11/19 15:32:45
ついでに質問なのですが、FormBuilderやFormHelperを継承せずに拡張したいのですが、うまいやり方ないでしょうか?

今は、
lib/hoge_form_helper.rb として、

module HogeFormHelper
  module FormBuilder
    def my_text_area(method, options = {})
       :
    end
  end
end

上記のように書いて、application_helper.rbにて、

class ActionView::Helpers::FormBuilder
  include HogeFormHelper::FormBuilder
end

のようにして、組み込んでいます。
FormBuilderを書いたら、FormHelperも追加したくなるのが人情というものですが、その場合、
HogeFormHelper::FormHelper を書いて、application_helper.rbに、

class ActionView::Helpers::FormBuilder
  include HogeFormHelper::FormBuilder
  include HogeFormHelper::FormHelper
end
のようにさらにするのが不恰好に見えます。
これらの処理をlib/hoge_form_helper.rb側におけないものでしょうか?

430:nobodyさん
09/11/19 20:01:14
rspecでhave_textとかinclude_textが動かなくて困っています。

現象:
get "some_action_name"
response.should include_text("foo")
とすると
expected "foo", got "1"
と表示され、失敗します。
response.should render_template(...) は成功しています。

調べたこと:
自分で調べたところ、p response.body をすると "1" が出力されました。
これはテンプレートがレンダリングされてないのだと思い、テンプレートの中で
$stderr.puts "**** rendered *****"
みたいに入れると、出力されませんでした。

推測:
どうもgetを呼び出しただけだとテンプレートがレンダリングされない?
rspecのチュートリアルだと
URLリンク(rspec.info)
get 'some_action'
response.should have_text("expected text")
とあるので、getだけでいいと思うんですけど、ほかに何か必要でしょうか。

431:nobodyさん
09/11/19 21:37:22
>>429
プラグイン化するとか。
結局はincludeするんだけど、vendor/plugins に丸ごと置くだけでよくはなる。


432:nobodyさん
09/11/20 16:48:45
Railsで、text2html みたいなヘルパーってありませんでしたっけ?
「rails text2html」でぐぐっても、それらしいのは見つからず。

433:nobodyさん
09/11/20 17:56:43
RoRをWindows上で稼動させていてアップローダーを作ったところ
日本語のファイルがUTF-8で生成されてWindows上で文字化けします
ファイルを保存するときにSJISに変換しないといけないのでしょうか?
NTFS自体はUNICODE対応のはずだし
なにかが間違ってるような気がするんです

434:nobodyさん
09/11/20 18:02:42
>432
textile とか markdown のこと?

>433
お前が間違ってる

435:nobodyさん
09/11/20 18:55:59
form_remote_tagとselect_tagを使ってAjaxで選択リストの値を送りたいのですが、値を受け取るにはコントローラでどのようなコードを書けばよいのでしょうか?

436:nobodyさん
09/11/20 19:17:38
>>433
UTF-8で保存するのでもなければSJISで保存するのでもない
UNICODEで保存するんだぞ

437:nobodyさん
09/11/22 03:24:06
parentテーブルとchildテーブルがあるとして、
parentモデルにhas_many :childを指定してchlidテーブルに
belogns_to :parentと指定します。
この状態の時に「parent.child.replace = @child」でchildに値をセットして
parent.saveとすると新規登録はされるんですが、更新が上手く行きません。
何か書き方がいけないのでしょうか?それとも仕様でしょうか?
ruby 1.8.6でrailsは2.2.2です。
よろしくおねがいします。

438:nobodyさん
09/11/22 04:51:41 Z6X1KQFW
>>436
UNICODEで保存?
UTF-8/16じゃなく?


439:nobodyさん
09/11/22 06:54:00
write open するときに
OpenFileA()じゃなくて
OpenFileW()使えっていう意味では

440:nobodyさん
09/11/23 20:58:50
RailsでjQuery使うにはどうするのがよいんでしょうか?
jRailsというのがあったみたいですが、公式サイトなくなってるし・・・

jRails - jQuery on Rails
 URLリンク(ennerchi.com)

441:nobodyさん
09/11/23 21:27:37
ふつうに <script src=></script> でいいんじゃないの?



442:nobodyさん
09/11/24 00:15:15
当方Windowsで開発をしています
ruby script/serverを実行した際に

C:\rails\hello>ruby script/server
=> Booting Mongrel
=> Rails 2.3.4 application starting on URLリンク(0.0.0.0:3000)
=> Call with -d to detach
=> Ctrl-C to shutdown server

でコマンドプロンプトが次のWEBRICKが起動した~などを出力してくれません
Ctrl-Cをしてもサーバーは停止できません
一度だけこの状態で長時間放置したときに
500 Internal Server Error
unknown error
という表示がされました

解決方法がさっぱりわかりません
どなたか解決方法知っている方がいれば教えていただけるとありがたいです

443:nobodyさん
09/11/24 00:38:56
こっち最新なんだろうか
URLリンク(github.com)

444:nobodyさん
09/11/24 03:53:25 igGLII2V
>>442
まるち

445:nobodyさん
09/11/24 07:33:31
>>442
誘導されておきながらそれを書かないからマルチ扱いされる
あと誘導前のスレにも移動する事くらい書いた方がいい
ちなみにMongrelの事は知らないので質問には答えられない

446:nobodyさん
09/11/24 09:45:43
>442
もっと詳しく。
エスパーは希少なのでそれだけの情報では足りない。
何が足りないのかは考えろ。

447:nobodyさん
09/11/25 01:38:14
知らんがな。
自分で調べる能力無いなら、サポートしてくれる業者を捜すなり、商用ソフトでも使ってサポート受けたら?

スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 90
スレリンク(php板)
【質問】ASP.NETスレ Part6【雑談】
スレリンク(php板)
【 スクリプト改造依頼スレ】(丸投げ) part7再々
スレリンク(php板)
△▲ WebProg 初心者の質問 Part21 ▼▽
スレリンク(php板)
くだらない質問でもど偉そうに聞いていいスレ

448:nobodyさん
09/11/25 16:20:37
>>442
何をしたいのか、何を聞きたいのか、意味がわからん。

mongrelをgemで入れている環境なら、script/serverはwebrickではなく自動でmongrelが起動するよ。

webrickを明示的に起動したかったら、 script/server webrick
とかするんじゃなかったかな?調べてみて。

Ctrl-Cは何回かおしたら止まる気はする

449:nobodyさん
09/11/25 16:25:33
質問をお聞きします。

viewやヘルパーを書く時に、javascriptのパスを渡したいのですが、
javascrip_path "hoge" などと書くと、
/javascript/hoge.js
というのが得られるのですが、viewでjavascript_include_tagメソッドで得られるように、
/javascript/hoge.js?1259048403
のようなキャッシュしないパスを簡単に得るメソッドはないものでしょうか?

ソースも見ているんですが、どこで付加されているのかイマイチわからんです・・・

450:449
09/11/25 16:51:10
実際はlib/以下に配置したモジュール内から、以下のようにして記述しているのですが、
ApplicationController.helpers.javascript_path "hoge"
hoge.js?1235343 のようになってくれません。
Rails consoleで上記を試すとちゃんとついてくれるのですが・・・

451:nobodyさん
09/11/25 17:02:11
わからないけど、これは関係あるだろうか
cache_asset_timestamps


452:449
09/11/25 17:24:16
>>451
ありがとうございます。

ソースも見ていたのですが、該当箇所はわかりました。
javascript_path→compute_public_pathときて、rewrite_asset_path内で?のあとにタイムスタンプを付加しているようでした。


で実はできねーよヽ(`Д´)ノ ウワァァン!!と思って四苦八苦していたのですが、
別のビューの似たようなページのソースをずっと見ていました orz

正しいページを見たら、ちゃんと
/javascript/hoge.js?1259048403
というようになっていました。

解決しました。
おかげさまでありがとうございました。スレよごしスマソ

453:nobodyさん
09/11/26 11:02:42 S4TWLvc3

Ruby 1.9 And Rails 3.0
URLリンク(www.slideshare.net)

454:nobodyさん
09/11/26 17:33:35
ぬるぽ

455:nobodyさん
09/11/26 17:50:14
Rails 2.3 = Rails 3.0 ってあるけど、そうなの?

456:nobodyさん
09/11/26 19:34:03 S4TWLvc3

First look at rails 3.0.pre
URLリンク(drnicwilliams.com)

URLリンク(woodie-rails.appspot.com)

rails 3.0 pre
URLリンク(github.com)
URLリンク(woodie-rails.appspot.com)

457:nobodyさん
09/11/27 00:40:04
ossでソースきれいで参考になるプロダクトってある?

458:nobodyさん
09/11/27 16:27:52 uE3HMbl5
rails version 2.3.5 just released.

459:nobodyさん
09/11/27 17:51:25
やっとこさrails2系に慣れてきたのにrails3とかワロス

460:nobodyさん
09/11/27 18:43:36
config/locales/ja.ymlを作って
ja:
 Hello: こんにちは
と書いた。あとconfig/environment.rbに
config.i18n.default_locale = :ja
を追加した。それでも ruby script/console を実行して
irb> I18n.t('Hello')
=> "translation missing: ja, Hello"
となる。
何が足りない?誰か助けて。

461:nobodyさん
09/11/27 18:59:16
>>460
サンプルの config/locales/en.yml にあるキーは小文字の hello なんだが、
YMLに小文字で書いて呼び出しで大文字のHelloを使っているのではあるまいか?



462:nobodyさん
09/11/28 00:57:41
>>460

config/locales/ja.ymlは、このようになっていないと動かない。
この状態で、I18n.t("hello")で翻訳される事を確認した。
-----------------------
ja:
hello: こんにちは
-----------------------

単に、hello: の行だけでは動かなかった。
たぶん、そのあたりじゃない?

463:462
09/11/28 01:06:47
あ、ごめん。
よく見てみたら、>>460もちゃんと書いてたね。

ちなみに
ja:
hello: こんにちは(hello)
Hello: こんにちは(Hello)

って書いたら、こうなったので全部小文字で書かないといけない
という事はなさそう。
>> I18n.t("hello")
=> "こんにちは(hello)"
>> I18n.t("Hello")
=> "こんにちは(Hello)"

確認したrailsのバージョンは2.3.4。

464:nobodyさん
09/11/28 01:21:36
>>463
全部小文字で書かないといけないというわけではなく、
ファイルでしたキーとコードから参照したキーが違ってるんじゃないかという
指摘だと思う。
ただのYAMLで定義したHashだし。


465:nobodyさん
09/11/28 17:18:18 gofPBBCV

10,000,000 todos
URLリンク(twitter.com)

466:nobodyさん
09/11/30 00:11:03
>>198
> 教祖がデビアンで開発してるから、

そのわりにパッケージが古いんだよな。
railsはgemで入れるとしてrubyがいつもチョット古いのが面倒だ。

467:nobodyさん
09/11/30 03:07:01
>>466
sidも古いの?


468:nobodyさん
09/11/30 15:32:02
<%=h foo.bar.name.blank? ? '-' : foo.bar.name %>
というのが頻繁にでてくるので、ヘルパーメソッドを定義したい。
def default_val(val, default='-')
 val.blank? ? default : val
end

・質問1: すでにこのようなメソッドはありますか?
・質問2: いいメソッド名があれば教えてください。

469:nobodyさん
09/11/30 16:49:47
1: ないと思う
2: value_or_default(foo.bar.name) とかどうだろ


470:nobodyさん
09/11/30 18:24:46
>>469
さんくす。
できればもうちっと短い名前がいいんだが。いいのがないものか。

471:nobodyさん
09/11/30 19:20:53
#blank? になるものが常に偽とみなせるなら foo.bar.name || '-' でいいんだけどねー。
"" とか [] は #blank? になるけど真だからなあ。




472:nobodyさん
09/11/30 20:45:02
blank?で判断する || 演算子が欲しくなるな。


473:nobodyさん
09/11/30 21:33:41
StringとNilClassにorってメソッドを・・・

474:nobodyさん
09/12/01 11:59:14
Rails初心者です。
fixturesは使わずに手軽にテストデータを入れようと、
勝手データテキストファイルと勝手スクリプトを書いて、
/db/migrateに両方起きつつ、NetBeans上からファイルを実行してみたのですが
ファイル読み込みの時点でNo such file or directoryとなってしまいます。
そこで質問ですが、
●このデータにアクセスさせるためにはどう書くべきですか?
●データ投入はfixturesを必ず使うべきですか?
よろしくお願いします。

475:nobodyさん
09/12/01 19:09:38
>474
知るか

476:nobodyさん
09/12/02 11:16:20
>>474
・Rails環境を利用した勝手スクリプトはscript/runner経由で使う

他なにかあったけ。

477:nobodyさん
09/12/02 11:18:43
>>474
あと必ずしもfixtureということもないと思う。

Rails 2.3.4では初期データの投入はseeds.rbを使うことが推奨されるみたいだよ

Rails アプリの初期データを設定する機能 - takihiroの日記
URLリンク(d.hatena.ne.jp)

478:nobodyさん
09/12/02 11:21:25
>>474
>>477似追記してコレも
Rails 2.3.4で追加されたseeds.rbについて - ひげろぐ
URLリンク(brass.to)

479:nobodyさん
09/12/02 11:38:12
Rails 2.3.5来てるな。
セキュリティfixあるからいれろ

Riding Rails: Ruby on Rails 2.3.5 Released
URLリンク(weblog.rubyonrails.org)

hなくてもエスケープするRailsXssプラグインが便利そうだ。生中出しするときはrawつける

480:nobodyさん
09/12/02 14:31:45
フォームを入力してSubmitボタン→「ありがとうございました」ページ
というのをつくったのですが、ありがとうございましたページでブラウザの戻るボタンを押し、
再度Submitボタンを押すと、同じデータが送信されてしまいます。
これは二重サブミットと呼ばれているそうですけど、これを防ぐにはどうするのがいいんでしょうか。
よさげなプラグインとかありましたら教えてください。

481:nobodyさん
09/12/02 18:39:32
RailsによるアジャイルWebアプリケーション開発第3版
買ったぞ。改訂版だから当然だけどパっと見で2版とほとんど内容変わらず…
2版で見慣れたスクリーンショットやコラムがそのまま載ってる。
これからじっくり読んでみよう

482:nobodyさん
09/12/03 00:03:06
>>480
rails トランザクショントークンでググれ


483:nobodyさん
09/12/03 05:28:57
>>480 >>482
これで簡単にいけそうだな

Railsでトランザクショントークン(ダブルサブミット、2重登録対策)を使う - diaの備忘録
URLリンク(d.hatena.ne.jp)

484:nobodyさん
09/12/03 09:20:01
ちょっと質問があります。

Rails 2 ではDBに保存する日時はdatetimeはUTCになっててますよね。
日のデーダだけDBに保存したい、扱いタ場合どうするのがよいのでしょうか?
何時(datetime)、ではなく何日(date)ということです。

UTCの日時から何日かデータを取り出した場合、時間の情報がなくなって、
時差情報が欠落してしまいます。

たとえば、日本時間だとUTC+9ですが、
UTCで2009-12-01 23:00のdatetimeから、
日付をDBに保存しておきたい場合、日本時間に変換し(2009-12-02 8:00)、日付にし(2009-12-02)DBに保存する?

こういう場合はどうするのがセオリーなんでしょうか?
そもそも、date使わずdatetimeのまま(UTCまま)DBとかに入れてしまう?でも変だな??

想定としては、date:datetimeと count: integerで日付と数値を次々と入力していったものを
日付別のデータにして保存したい(例えばデイリーの累積グラフにしたり)という場合の話です。

485:484
09/12/03 09:23:29
想定がわかりづらくてすいません。

UTC 2009-12-01 12:00, 100
UTC 2009-12-01 23:00, 100
UTC 2009-12-02 1:00, 100

というデータがあって、

2009-12-01, 200
2009-12-02, 300
という累積したデータを保存しておくというのを想定しています。

486:nobodyさん
09/12/03 11:36:12
色々と酷くて答えようがない

487:nobodyさん
09/12/03 12:44:15
>>485
この場合、UTCで集計してるんだから、
日付もUTCにせざるを得ないんじゃないの。

488:nobodyさん
09/12/03 15:51:32
そもそもローカルタイムで格納するつもりはないの?
config.active_record.default_timezone


489:nobodyさん
09/12/04 00:25:22
ローカルはあとで困ると思うよ。utcを変換して使っておいたほうがいい。

490:nobodyさん
09/12/04 01:35:49
>>485
UTCで保存する必要がないなら、config/environment.rbにある
config.time_zone = 'UTC'
この行をコメントアウトするか、削除すればローカルタイムで保存される。

>>489
UTCで保存して得した事なんて一度もないんだが、
どういうケースで役に立つの?
また、どういう場合に困るの?


491:nobodyさん
09/12/04 08:40:19
>>490
国際的なアプリでユーザーの指定したタイムゾーンに合わせて
時間を表示するような場合は、ローカルタイム基準だと
話がややこしい。
どこからでも使われる可能性があるなら場所には依存しないほうが楽。

492:nobodyさん
09/12/04 11:43:43
>>490
自分(or特定の相手=日本人)しか使わないならそれでいい
不特定多数相手なら考えを改めた方が良い

493:nobodyさん
09/12/04 18:21:14
質問させてください。

Controllerってどのように分けるものなんでしょうか?

例えば、ショッピングサイトだったら、
ログイン、ログアウト部分、カート部分、購入部分みたいに機能別でしょうか?

作成しているアプリは規模も小さいので、
Controller一つでもできそうなんですが、
後から見たときに管理しやすい形にしたくて。

494:nobodyさん
09/12/04 19:05:57
設計次第だし、一般論で答えろといわれてもそりゃ無理だ。
質問が曖昧で答えようが無い。
modelと必要機能の一覧ぐらいは示してくれ。

495:nobodyさん
09/12/05 02:24:29
実際rorでショッピングサイトなんて組まないと思うよ。決裁の認証が通らないと思う。

496:nobodyさん
09/12/05 07:46:07
>>495
ほう。お?なに?誤爆?

497:nobodyさん
09/12/05 16:59:31
PHPの方がマシだな
Railsで重要な個人情報を扱うこと自体が怖い
簡易SNSとか個人で使うブログとかもっと軽いノリで作る時にしか使わない

498:nobodyさん
09/12/05 17:13:02
意味が良くわからん。
開発者のセキュリティを考慮する能力しだいであって言語関係ないだろ。

499:nobodyさん
09/12/05 17:15:36
>>497のレベルが低いことだけは理解しました

500:nobodyさん
09/12/05 17:23:34
釣りにしてもレベル低過ぎワロタ

501:nobodyさん
09/12/05 19:24:59
>>498-500
IPAという法人がいましてね

502:nobodyさん
09/12/05 20:30:01
>>501
IPAがどうした?
IPAはRuby/Railsに関する調査報告書を発表してる事は知っているし、
その内容はRailsを否定するものではない。

それからPHPについては、明らかに無関係だろう。
PHPなら問答無用でセキュリティに問題のないアプリケーションが出来上がるのか?
そんな訳があるまい。セキュリティは言語の問題ではなく、開発者側の問題だ。


503:nobodyさん
09/12/05 22:08:48
>>502
IPAがPHPディスってんのは有名な話だけど、そのことなのかな?

IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第1章 総論:より良いWebアプリケーション設計のヒント
URLリンク(www.ipa.go.jp)

504:nobodyさん
09/12/05 22:30:14
セキュリティが言語選択とは無関係って頭悪すぎだろ

505:nobodyさん
09/12/05 22:35:11
いや、PHPとRubyの2つで考えた場合、
どちらかを選べばセキュリティの問題が解決するってわけではない
という事でしょう。
利用する側がセキュリティに対する意識をしっかり持って開発しないと脆弱なシステムが出来上がる。


506:nobodyさん
09/12/05 23:26:46
PHPのフレームワークに比べて
Railsってセキュリティホール多い印象がある

507:nobodyさん
09/12/05 23:49:22
>>506
スレリンク(tech板:181番)

508:nobodyさん
09/12/05 23:55:51
印象だけで語られてもな・・・
ソースとかないの?


509:nobodyさん
09/12/06 00:32:13
馬鹿は伝染るから気を付けよう
相手をしてスレのレベルが下がっていく様を何度も見てきただろう?

510:nobodyさん
09/12/06 15:27:04
印象も何もChangeLog見れば分かるだろ

511:nobodyさん
09/12/06 17:50:02
お前がchangelogのどのあたりを言ってるのかわからない

512:nobodyさん
09/12/06 19:37:48 eFQH73Wn
Rails 3
URLリンク(railsnotes.com)
[Last Updated: Nov 24th, 2009]

513:nobodyさん
09/12/06 21:51:40
Rails2からだいぶ変わるのかなぁ
やっと2系に慣れてきたのにマジでだるいー

514:nobodyさん
09/12/06 22:07:39
どうせならGUI環境にも力入れてほしいわ
NetBeansでも良いけど

515:nobodyさん
09/12/06 22:44:15
IDEは別口だろう…


516:nobodyさん
09/12/07 00:02:15
>>476-478
かなり亀ですが、レスありがとうございました。
独自のモデルメソッド?を作ってコントローラから呼ぶみたいなことしてました。
seed.rbはまだ試してないので、今度機会がある時はそちらを利用してみます。
ありがとうございました。


517:nobodyさん
09/12/07 02:27:18
楽天がRoR使うって言ってたな

518:nobodyさん
09/12/07 03:43:32
いや、すでに使ってるよ。
Ruby会議2009ではスポンサーにもなってるし、Railsに関する発表も行った。
まぁROMA(楽天が開発したKVS)の宣伝も兼ねてたと思うけど。

519:nobodyさん
09/12/08 01:59:02
winでrailsで並列処理って出来ませんか?
backgroundrbはwin対応していないらしく・・・

サーバにファイルアップロードして、進捗を表示したい。ここはAJAXかな。
しかも並列処理でファイル変換処理の優先度を設定したい。

力技でやるとしたら、
ファイルかDBに変換処理情報書き出して、WINのタスクで実行して、
出来たファイルのサイズ監視して進捗を返すぐらいしか思いつかない・・

520:nobodyさん
09/12/08 02:28:49
>>519
Threadでごりごりやればなんとかなるんでない

521:nobodyさん
09/12/08 22:41:01
>>519
win32-serviceを使って変換処理を常駐させておいて、
Railsアプリと変換処理をdRubyでつなぐ、とか適当に考えてみた。

522:nobodyさん
09/12/09 02:23:11 EO2jQSYV
URLリンク(www.chikawatanabe.com)

523:nobodyさん
09/12/09 08:57:42
>>519
ファイル進歩具合なら、それは単にAJAXで出来そうな気がするが・・・
開発用サーバーで一個しか立ててないなら、他の処理はできないかもしれないが

524:nobodyさん
09/12/09 08:59:29
てか、>>204にヒントがありそうだ。
・自前のDRbサーバをrunnerで動かす
・kovyrin's loops at master - GitHub
URLリンク(github.com)

525:nobodyさん
09/12/09 15:46:47
mod_proxy_balancerとmongrelを使っています。
mongrelが起動していないときは
Service Temporarily Unavailable
というページが出るんですが、これをカスタマイズするにはどうしたらいいでしょうか。
やりたいことは、「現在停止中です。再開見込みは何時何分です。」というメッセージを出すことです。

526:nobodyさん
09/12/09 16:56:42
>>525
mod_~~てことはapacheがフロントエンドだと思うんだけど、apacheの設定で503表示をカスタマイズすればいいんじゃまいか?

527:nobodyさん
09/12/09 17:11:13
質問させてください。

Userモデル
Unkoモデル

があった場合、UserがUnkoごとにそれを所持しているかの状態を保持するためにUserUnkoPossesionモデルを作りました。
ユーザーのうんこ所持状態で、カラムは has_unko:boolean、user:references、unko:references です。

このような状態で、
  unkos = Unko.all
  user = my_user
のようにunkosと現在のuserがある場合、下記のように各unkoごとに
userがhas_unkoでunkoを持っているかどうかで場合分け処理したいのですが、
どのように書くのがスマートなものでしょうか?

unkos.each do |unko|
  :
end

Rails guideのassociationsを見ていたのですが、いまいちスマートな方法がわからず・・・
associationは以下のように書いています。

class UserUnkoPossesion < ActiveRecord::Base
  has_many :user_unko_possesions
  has_many :users, :through => :user_unko_possesions
end

class UserUnkoPossesion < ActiveRecord::Base
  belongs_to :user
  belongs_to :unko
end

528:nobodyさん
09/12/09 17:12:25
>>527
下の方がミスってました。スマソ

class Unko < ActiveRecord::Base
??has_many :user_unko_possesions
??has_many :users, :through => :user_unko_possesions
end

class UserUnkoPossesion < ActiveRecord::Base
??belongs_to :user
??belongs_to :unko
end

529:nobodyさん
09/12/09 18:06:20
RailsをSubversionで共同開発する場合ってgenerateで作成したファイル一つ一つにsvn addするんですか?

530:nobodyさん
09/12/09 18:29:28
>529
$ script/generate xxx -c ... で作る。gitは -g
generateを引数無しで実行してみよう。

railsコマンドでも
$ svn co testapp (空)
$ rails -c testapp
$ cd testapp
$ svn commit
とか。



531:529
09/12/09 19:02:19
>>530
ありがとうございます!
まさに望んでた機能でした。Railsに抜かりなしですね

532:nobodyさん
09/12/10 08:22:58
ActiveMailerでのメール送信がうまくいきません。
ログには
Sent mail to xxx@gmail.com
とあるので、ActiveMailerがメールを送信しようとしていることはわかりました。
ただActiveMailerが内部でどのようなコマンドを使ってメールを送信しているのかが
わからず、困っています。

ActiveMailerでメールが送信できないときに、どのような点をチェックしたらいいのか教えていただけないでしょうか。
たとえばsendmailが使えるか、とか。



533:nobodyさん
09/12/10 09:22:43
ActionMailerは、自分でSMTPをしゃべる(net/smtp)ことも、
外部のsendmailコマンドに任せることも出来る。

設定はこのへんか。
config.action_mailer.delivery_method = :test | :smtp | :sendmail
config.action_mailer.sendmail_settings = {
  :location => '/usr/sbin/sendmail',
  :arguments = '-i -t'
}
以上リファレンスより。


534:nobodyさん
09/12/10 11:27:09
初学者に対してIDEはどれがおすすめですか?
エディタ+コンソールで十分だとは思いますが、もしおすすめがあれば教えてください。

535:534
09/12/10 11:30:11
連投すみません。
もしくは、開発に何を使われていますか?
良いところも含めて教えてもらえるとありがたいです。

536:nobodyさん
09/12/10 11:39:33
初学者は何使っても同じ。ツールの使い方で悩む。
自分が持ってる本に載ってるやつにしとけ。

537:nobodyさん
09/12/10 12:17:29
IDE慣れしてるならNetBeans使った方がいいと思うなあ
デバッグ楽ちんだし

538:nobodyさん
09/12/10 13:57:45
>>533
ありがとうございます。
ActiveMailerが内部でどういうコマンドをどういうオプションつきで起動しているか、調べる方法はありますか。
現在以下のような設定を行なっているのですが、うまくいきません。
ActionMailer::Base.delivery_method = :sendmail
ActionMailer::Base.sendmail_settings = {
:location => '/usr/sbin/sendmail',
:arguments => '-i -t',
}

現象としては、フォーム入力を受け取ってデータを作成し、そのときにObserverを使ってメール送信するようしています。
しかし実際にフォームを送信すると、HTTPレスポンスが返ってこずタイムアウトします。
どこでエラーになっているのかがまるでわからず、ActiveMailerのソースを読んでいるんですけど。。。わかりません。

539:nobodyさん
09/12/10 14:00:10
sendmail のログを見たらいいんじゃね?

540:nobodyさん
09/12/10 14:02:07
そもそも delivery_method = :test ではうまくいってるのかな。
どうなったか書かれていないからそこからきかにゃならん。


541:nobodyさん
09/12/10 16:16:30
>>534-536
NetBeans使ってるよ。

Eclipse + aptanaもあるが、あれは重くてかなわんなw

542:nobodyさん
09/12/10 16:23:27
debian + emacs + rinari + yasnippet

543:534
09/12/10 17:25:42
>>542
emacsで開発とか憧れです。

Aptana重いですよね。やっぱりnetbeansですかね。イマイチ使いこなせてない…。

544:nobodyさん
09/12/10 20:46:43
ブラウザの戻るボタンを使わせないために、ブラウザにキャッシュをさせないようにしたいのですが、うまくいかないので相談にのってください。

あるページをブラウザにキャッシュさせたくなくて、以下のようにしました。
hdr = response.header
hdr['Cache-Control'] = 'no-cache'
hdr['Pragma'] = 'no-cache'
hdr['Expires'] = 'Thu, 01 Dec 1994 00:00:00'
キャッシュさせたくない理由は、ページを遷移したあとで、ブラウザの戻るボタンを使わせたくないためです。
それで、上のコードでうまくいくかと思ったのですが、うまくいかなくて困っています。つまり、戻るボタンで戻れてしまいます。

Firefox の Live HTTP Headers で見てみると、
Pragma: no-cache
Cache-Control: private, max-age=0, must-revalidate
Expires: Thu, 01 Dec 1994 00:00:00
というヘッダが出力されてました。なんか、Cache-Controlヘッダが書き変わっているんですが、こんなものでしょうか。

なお環境は Rails 2.3.4、Apache 2.2.13、mod_proxy_balancer + mongrel_rails 1.1.5 です。

よろしくお願いします。

545:527
09/12/10 20:58:13
class Unko < ActiveRecord::Base
  has_many :user_unko_possesions
  has_many :users, :through => :user_unko_possesions

  # 現在のユーザーが持っているかどうかを返す
  def is_selected_by_user
    possesions = user_unko_possesions.find_by_user_id(User.my_user)
    return possesions ? possesions.has_unko : nil
  end
end


Unko.all.each do |unko|
  puts "#{unko.name} is YOUR UNKO!!" if unko.is_selected_by_user
end

とかやってみたのですが、ループの度にSQLでfind_by_user_idが走るなど、
富豪的なのですが、もっとよい書き方はないのでしょうか?

546:527
09/12/10 20:59:16
>>545
is_selected_by_userじゃなかった。has_unko_by_userメソッドでしたミス失礼・・・

547:nobodyさん
09/12/10 22:55:20
unkos = Unko.all(
:select => 'unkos.*, user_unko_posessions.user_id',
:joins => 'JOIN user_unko_posessions ON user_unko_posessions.unko_id = unkos.id')

とすると、それぞれの unko に user_id がついてくるぞ。文字列としてだけど。



548:nobodyさん
09/12/10 23:03:15
unkos = Unko.all(:include => :users) ??


549:nobodyさん
09/12/12 00:19:41
>>544
キャッシュさえしなければ「戻る」を使えないように
できると思ってるの?

550:nobodyさん
09/12/12 01:19:06
というかアプリケーションからブラウザのそんなコアな機能を制御出来るの?

551:nobodyさん
09/12/12 03:46:46
キャッシュしないなら、もう一度取りにくるだけだしな。
プロパや組織のネット管理者に、間に勝手に通過型プロクシ埋め込まれてキャッシュされる事も有るし、無視するブラウザも居るし。
フラッシュかアプレットかジャバアプリかドトネトアプリで、ブラウザに頼らずに自前で制御するしか無いよ。

スレリンク(tech板)
うーたんブラウザを作るスレ00001
スレリンク(tech板)
Geckoベースのブラウザを作ろう。

552:nobodyさん
09/12/12 08:15:13
全部のページに
戻るボタンからアクセスされたら
元のページにForwardするjavascriptを埋めておく

553:nobodyさん
09/12/12 10:37:46
urlに?yymmddhhmmssとか現在時刻のライムスタンプつけたらキャッシュされないんじゃないかな?
自分は、よく更新されるファイルをこれで最新版返すようにしたよ。

554:nobodyさん
09/12/12 11:08:16
ちゃんとよく読んでレスしろよ

なんで戻らせたくないのかは書いてないが、
戻るボタンを押すとなんたらかんたらってメッセージが出るからじゃないのか?

555:527
09/12/12 12:40:11
>>547-548
ああ!そういうときにjoinsとかinclude使うのか。
SQLとかの知識少ないせいか最初、意味分からんかったw

サンクサンクス 試してみます

556:nobodyさん
09/12/12 12:42:12
銀行の利用者用ページだと戻るおしたら戻った先で、表示できないことあるけどそういうことか?

557:nobodyさん
09/12/12 18:09:44
amazonとか注意してないと同じもの二つ注文してたりするよな

558:nobodyさん
09/12/13 19:52:52
そういうのはゴニョゴニュして検出するべきだけどね。
商用フレームワークとかだと当たり前に機能有ったりする。rorなら自前で用意するしかない。
金融系はちゃんと検出して、戻るボタンが押されましたとか表示するね。

559:nobodyさん
09/12/13 23:56:52
そういう細かいケアをするのって日本くらいでは。
ユーザを無能のクレーマーと想定して作るのが生産性下げてると思う。

560:nobodyさん
09/12/14 00:11:20
どうせいくら防御しても、ユーザーはとんでもないことやらかしてくれるからなー。
ダグラス・アダムスの警句は真だ。




561:nobodyさん
09/12/14 01:29:59
金がらみのシステムとブログシステムとかは考え方を変えないと

562:nobodyさん
09/12/14 02:24:38
>>559
なわけない。
URLリンク(www.google.co.jp)

日本人が気にするようなレベルはその先の話。
つまり「◯◯で大丈夫ですよ」と言われたら米国人は安心するが、
日本人はその処理の信頼性を調査する。

563:nobodyさん
09/12/14 14:08:42 o/Pytjxa
>>558
>金融系はちゃんと検出して、戻るボタンが押されましたとか表示するね。

戻るボタン自体は受け付けてくれないと
本当に戻りたいときに困るよなぁ

564:nobodyさん
09/12/14 14:28:04
もともとのページ遷移モデルが間違ってるんだよな
ajax でページ移動が一切起こらない設計にするべき

565:nobodyさん
09/12/14 18:20:43
このスレで言うのもなんだが、WebアプリはSilverLightとかFlashとか、
バイナリにしてしまった方がいいと思うんだ。

566:nobodyさん
09/12/14 18:40:53
>>565
バックエンドはRailsにすればこのスレの範疇w
全部Flashでもいいと思うが一般のwebサービスだとpermalinkとかないとちょっと困るな

567:nobodyさん
09/12/14 18:47:01
質問があります。

認証プラグインAuthlogicを勉強してみた - MothProgのうしろがわ
URLリンク(d.hatena.ne.jp)

Authlogicを入れてみているのですが、こちらのページでは下記のように
current_userのような現在のユーザーを取得する処理をapplication_controllerにおいています。

  def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.user
  end

上記のように書いてみてうまく行ったのですが、
別のモデルからこのメソッドにアクセスしたいため、Userモデルに置きたいと考えています。

しかし、モデルに置いてUser.current_userなどのように取得する場合、

def current_user
return @@current_user if defined?(@@current_user)
@@current_user = current_user_session && current_user_session.user
end

などのようにクラス変数に格納するようにすると何故かうまく動作してくれません。
たぶん、Railsのサーバーの場合、モデルのクラス変数が初期化されないのだと思うのですが、
この場合の対処法はありませんでしょうか?

568:534
09/12/14 18:49:03
>>566
今はPermalink大丈夫。

569:567
09/12/14 18:49:37
すいません下のコード間違えました…

def self.current_user
  return @@current_user if defined?(@@current_user)
  @@current_user = UserSession.current_user_session && UserSession.current_user_session.user
end

570:534
09/12/15 12:11:56
「Railsによるアジャイル~」の内容が本当にアジャイル過ぎて内容が理解しにくい…。

571:nobodyさん
09/12/15 17:23:18
Railsで、クッキーが有効かどうかを調べる方法ってありますか。

572:nobodyさん
09/12/15 23:01:42
それは Rails じゃなくて javascript の話です。

573:nobodyさん
09/12/15 23:48:27
HTTPだけでやるには、最初にリクエストが来たときにクッキーを食わせて、
仮ページにリダイレクト、クライアントが改めてリクエストしてくるときに、
リクエストにそのクッキーが入っているかを見る。
で、必要なら仮ページから元のページにリダイレクトし直す。

とかだろうか?



574:nobodyさん
09/12/16 00:52:24
>>572
おいおい・・・

575:nobodyさん
09/12/16 00:55:11
>>573
仮ページを介さずとも同じところにリダイレクトでいいよーな気がする。


576:nobodyさん
09/12/16 11:59:09
ページ推移をゴニョゴニョすればいい。
商用フレームワークなら当たり前についてる機能だ。
rorは自力でがんばれ。

フラッシュは最近もセキュリティの問題が発見されたし脆弱過ぎる。企業とか無効にしてる所も多いしな。後はアイフォンが非対応でマカが騒ぐとか。グーグル携帯使えでおkだが。

577:534
09/12/16 16:10:13
何この「商用フレームワークうんぬん」の人気持ち悪い

578:nobodyさん
09/12/17 15:02:21
>>577
同感

579:nobodyさん
09/12/17 15:38:45
FastCGIが嫌われてる理由がよくわからない

580:nobodyさん
09/12/17 16:53:09
Railsとmod_proxy_balancerについての質問です。

現在、あるサイト (URLリンク(www.foo.com)<) にしようとしています。
そのために、以下のような設定をhttpd.confに追加しました。

ProxyRequests Off
ProxyPass /foo/images !
ProxyPass /foo/stylesheets !
ProxyPass /foo/javascripts !
ProxyPass /foo/ balancer://railsapp/
ProxyPassReverse /foo balancer://railsapp/
<Proxy balancer://railsapp>
BalancerMember URLリンク(127.0.0.1:8000)<) loadfactor=20
</Proxy>

これで動くようにはなったんですが、問題があります。
(つづく)


581:nobodyさん
09/12/17 16:56:09
(つづき)

URLリンク(securesite.com) にリクエストがあった場合、
 Rails には /admin/ へのリクエストとして届くようです。
 そのため、'/foo' は無視して
   class AdminController < ApplicationController
    def index
    end
    ...
   end
   map.resources :admin
 とする必要があります。

・しかしこれだと admin_path() が '/admin' を返すのです。
 そうではなくて admin_path() は '/foo/admin' を返すようにしたいのですが、できますか。

・あるいは、Railsでは
  map.namespace :foo do |x|
   x.resources :admin
  end
 として、mod_proxy_balancerのほうで URLリンク(securesite.com) へのアクセスを
 Rails に /foo/admin へのリクエストとして渡せることができればいいんですけど、
 Apacheのマニュアル読んでも分かりませんでした。そんな設定を知っている人がいたら教えてください。

582:nobodyさん
09/12/17 23:10:49
「Rails サブディレクトリ」で検索したらいろいろ出てくるけどこういうのと違う?
サブディレクトリ下で Rails 2.3 を動かすときの注意点
URLリンク(www.yohasebe.com)

583:nobodyさん
09/12/18 18:46:13
Railsがリクエストを受け取ってからコントローラで処理するまでの流れを知りたいのですが、なにかいい方法はありますか。
ソースを読むならここを読めというのがあれば教えてください。
バージョン:Raisl2.3.5

584:nobodyさん
09/12/18 22:24:46
>>579
プロセスの生き死にの管理が面倒。
いつの間にかささってレスポンス返さなくなったときに、
それを発見して、killして、新しいプロセスを立ち上げるというのを
大抵は自前でどうにかしないといけない。
ウェブサーバを落としても、プロセスは生きてたりするしね。

585:nobodyさん
09/12/18 22:27:39
>>583
class ApplicationController < ActionController::Base
def index; raise; end
end

とでもして、ログに出るスタックトレースにしたがってソースを読めばいいかと。

586:nobodyさん
09/12/19 00:49:48
>>585
頭いいなあ!さんくす

587:nobodyさん
09/12/19 08:50:16
>>584
でもruby以外にpythonやマイナーな言語で書かれたものとか混合しようとするとFastCGI以外になさそうなんですよね

588:nobodyさん
09/12/19 15:47:38
定期的に再起動すればいいだけ。

スレリンク(php板)
【fcgi】FastCGI 総合スレッド
スレリンク(php板)
【激速】mod_perl SpeedyCGI FastCGI【激速】

589:nobodyさん
09/12/20 09:19:26
FastCGI入れられる環境なら、Ruby側はpassengerつかっときゃいいような気がするが。
自動再起動機能もあったろう

590:nobodyさん
09/12/20 09:21:27
>>583
NetBeansなどIDEでブレークポイントし掛けてソース追っていく方法はあるよ。

俺はRailsのデバッグ、というかソース追って読むの挫折したw
method_missingとかのせいか遷移がわけわからん。

591:nobodyさん
09/12/21 19:39:55 fEey4yBh

Rails 3 in Action
URLリンク(www.manning.com)

Deal of the day for December 21, 2009
Megadeal! 50% off all ebooks
URLリンク(archive.constantcontact.com)



592:nobodyさん
09/12/21 22:14:09 fEey4yBh
URLリンク(railsnotes.com)

593:nobodyさん
09/12/23 18:38:55
Railsで、404 Not Foundを返すときはどうするのがいいでしょうか。
Merbだとそれ用の例外を投げるという実にわかりやすい方法があったのですが。
ちなみにRails2.3.5です。

594:nobodyさん
09/12/23 19:02:40
コントローラ内で render 凝りまくったエラー画面, :status => :not_found
としてもよいけど、例外単位でよければ以下のように。

ActionController::Base.rescue_responsesに例外クラス名とステータスを登録する。
たとえば
ActionController::Base.rescue_responses['ArgumentError'] = :bad_request
デフォルトで ActiveRecord::RecordNotFound なら :not_found みたいなのが登録さ
れている。

通常の例外時の動作は public/STATUS.html を返す(render_optional_error_file)
だけなので、これを変更したければ rescue_action_in_pubic などをカスタマイズする。

なお、development だと、そのままでは開発向けエラー画面が出るので、
エラー画面自体の確認をしたいときは config/environments/development.rb の
consider_all_requests_local を false にし、ループバック(localhost や 127.0.0.1)以
外のアドレスでサーバにアクセスする。

ソースは action_controller/rescue.rb


595:nobodyさん
09/12/23 19:31:48
>>594
参考になりすぐる!ありがと。

596:nobodyさん
09/12/23 22:02:53
>>594
横体がありがとあい

597:nobodyさん
09/12/24 00:22:36
ファイルをアップロードするときにセキュアにするにはどうしたらよいのでしょうか?
ssl通信等を使用する方法はどのあたりを調べるとわかるでしょうか?

598:nobodyさん
09/12/24 02:13:09
>>597
HTTPS自体はアプリ側で特に意識する必要はないよ。
どっちかというとWebサーバの設定。


599:nobodyさん
09/12/24 09:17:32
>>594
例外の処理には rescue_from というのもあるわん。


600:nobodyさん
09/12/24 20:39:55
Herokuってどうなの?

601:nobodyさん
09/12/25 00:25:14
>>598
そうなんですか.ありがとうございます.

602:nobodyさん
09/12/25 19:50:30
ロケーションバーからアクションに直接アクセスされた場合のみ他ページへのリダイレクトをかけたいんですが,どうやればよいのでしょうか?

例えばViewで,
<div id="sample">
<%= select("foo", "bar", data) %>
<%= observe_field(:foo_bar, {
:update => :baz,
:on => 'change',
:url => { :action => :some_action },
:with => "'foo_bar=' + value"}) %>
</div>
となっている場合,ブラウザのロケーションバーから直接localhost:3000/controller/some_actionへアクセスされた際に,
他のページへリダイレクトさせたいです.
コンボボックスの選択変更によりsome_actionが起動した際には,リダイレクトしないようにしたいです.
some_action内にそのままredirect_toを書いてしまうと,コンボボックスの選択変更でsome_actionが起動したときにもリダイレクトしてしまうので困っています.

603:nobodyさん
09/12/25 20:14:54
>>602
request.referrer を見る。(referでも可:-)
ただし、送らないように設定している人がアクセスできなくなる。

今回はAJAXみたいなので、別解として
verify :xhr => true, :only => :some_action
も紹介しておく。今回はたぶんこっちがよいのでは?



604:nobodyさん
09/12/25 21:35:57
>>603
なるほど,そうすればいいんですか.
思ったとおりに実現できました.ありがとうございます.

605:nobodyさん
09/12/26 04:11:25
rails2.3.5使う場合って
rubyのバージョンは1.8.6推奨なの?
reeは1.8.7出てるから、そろそろ1.8.7?

606:nobodyさん
09/12/26 09:30:19
2.3系はどっちでもえーよ。
3.0.preでは1.8.6は切り捨て。


607:nobodyさん
09/12/26 12:36:12 N7t9YIOf
古い資産がないなら1.8.7使っておいた方が良いような気がする

608:nobodyさん
09/12/26 14:30:42
そもそも、railsの人って1.8.6じゃなきゃダメみたいなイメージがあるんだけど
1.8.6と1.8.7の差ってそんなに大きいの?

609:nobodyさん
09/12/26 16:12:06
1.8.6を捨てたくなる程度には大きい。


610:nobodyさん
09/12/26 18:16:55 5fe5VdgJ
Ruby 1.8.7で使えるようになったRuby 1.9のメソッドたち - (rubikitch
URLリンク(d.hatena.ne.jp)

URLリンク(drnicwilliams.com)



611:nobodyさん
09/12/26 22:35:03
>>600
どうっていうと?
デプロイは異常に楽だよ。
DBに溜め込むデータ量が少ない自分専用の小物アプリくらいなら無料でもいける。
まともなアプリを設置するには有料じゃないと無理。

612:nobodyさん
09/12/27 02:54:47
rails3っていつベータリリースされんの?

613:nobodyさん
09/12/27 03:56:24
まだlighthouseにも日付が出てないな。
見たいだけならgitからどーぞ。


614:nobodyさん
09/12/27 05:59:02
from/to日付の入力チェックの際に
from>to ならエラーとするようなvalidateを書いたんだが

def validate
errors.add(:from_date, "日付が不正です。") if (from_date > to_date)
end


エラー発生時にfrom/toどちらとも赤い四角(class="fieldWithErrors")で囲む方法ってある?

615:nobodyさん
09/12/27 09:48:34
>>614
そういうカスタマイズって、Railsは難しいよねー


質問なんですけど、ruby script/console してから、FooController.new.index()を実行するとエラーになります。
consoleのなかからControllerオブジェクトを生成するただしい方法を教えてください。

616:nobodyさん
09/12/27 11:42:20
>>615
app というオブジェクトがある。

script/console> app.get '/foo/index'
のようにリクエストを投げると
script/console> app.controller
に対応するコントローラがセットされる。



617:nobodyさん
09/12/27 14:33:15
>>614
フレームワークの範囲内でやるには、関係が満たされていないときに
両方を errors.add すればいいんじゃない?



618:nobodyさん
09/12/27 17:34:38
>>605
URLリンク(rubyonrails.org) みると冒頭に
We recommend Ruby 1.8.7 for use with Rails.
とある。

619:614
09/12/27 19:31:19
>>617
それだとエラーメッセージの表示がすっきりしない。
どうしたもんか。

620:nobodyさん
09/12/28 01:09:51
>>619

全く未検証ながら、
ActionView::Base::Helpers::ActiveRecordHelper#to_date_select_tag(など)の定義を
app/helpers以下にコピってきて、

error_wrapping(to_date_select_tag_without_error_wrapping(options, html_options),
  object.errors.on(@method_name))
を、
has_error =
case @method_name
when :from_date, :to_date; object.errors.on(:from_date) or object.errors.on(:to_date)
else objet.errors.on(@method_name)
end
error_wrapping(to_date_select_tag_without_error_wrapping(options, html_options), has_error)
と書き換えた定義を作る。

from_date to_dateのフィールドのエラーを判定するときだけ相方のエラーも考慮。


621:nobodyさん
09/12/28 06:27:12 6MaAP7GA
Rails and Merb Merge: The Anniversary (Part 1 of 6)
URLリンク(www.engineyard.com)

The Rails 3 Router: Rack it Up
URLリンク(yehudakatz.com)

622:nobodyさん
09/12/30 06:18:07 p1BkGZKi
【PHP】フレームワーク Akelos
スレリンク(php板)l50

623:nobodyさん
09/12/30 10:01:16 +1QPHe9X
あけおめ

624:nobodyさん
09/12/30 11:20:23 p1BkGZKi

Rails and Merb Merge: Performance (Part 2 of 6) | Engine Yard Blog
URLリンク(www.engineyard.com)

625:nobodyさん
09/12/30 11:30:17
毎日1本ずつかと期待してたがやっとパート2が来たか。


626:nobodyさん
09/12/30 15:10:49
Ruby1.9.2が正式リリースされないと、Railsも正式リリースされないんだろうな
1.9.2はpreview2も出ないし、まだ先なのかね

627:nobodyさん
09/12/30 15:57:14
RubySpec走らせようぜぇ


628:nobodyさん
09/12/31 06:41:41 0ZeyyLVy
dhh

@37signals is already running a few minor apps on Rails 3. We've just started playing w/ porting Basecamp. Exciting times!
URLリンク(twitter.com)

URLリンク(twitter.com)
Very tentative target date for Rails 3 beta is end of January. But core is staffed with volunteers, so very much subject to change.
about 1 hour ago from Echofon

629:nobodyさん
09/12/31 06:58:56 0ZeyyLVy
@sockmonk 1.8.7. Rails 3 requires 1.8.7.
URLリンク(twitter.com)

dhh

@37signals is already running a few minor apps on Rails 3. We've just started playing w/ porting Basecamp. Exciting times!
URLリンク(twitter.com)

Very tentative target date for Rails 3 beta is end of January. But core is staffed with volunteers, so very much subject to change.
URLリンク(twitter.com)

630:nobodyさん
09/12/31 08:31:33 0ZeyyLVy
Very tentative target date for Rails 3 beta is end of January. But core is staffed with volunteers, so very much subject to change.
URLリンク(twitter.com)
dhh

631:nobodyさん
09/12/31 14:23:44
何度も書くほどの事かね.

dogfooding出来る程度動くようにはなってきたというのはわかった

632:nobodyさん
09/12/31 22:48:13 0ZeyyLVy











633:nobodyさん
10/01/03 01:04:56
railsでleft join whereって使えないよな。
has_manyとかはidしか条件にしないし、他の条件を使えない気がする。

634:nobodyさん
10/01/03 17:24:17 Kv5gn0C+
URLリンク(github.com)

635:nobodyさん
10/01/04 00:12:50
>>634
ほほぅ

636:nobodyさん
10/01/04 00:15:11
>>633
:joins 指定すればいいという話ではなく?

637:nobodyさん
10/01/04 00:32:56
Railsの勉強で、簡単なブログツールを作っています。
記事のモデルオブジェクト(Post)にコメント数を表すカラム(comment_count)を作成しているのですが、これの更新方法がよくわかりません。
たぶんトランザクションを使って、コメントが保存できたらcomment_countを1増やすという方法になると思うのですが、
以下のようなコードであっているでしょうか。どなたか添削をお願いします。

def add_comment
 # ブログ記事のモデルオブジェクトを検索
 post = Post.find(params[:id]) or raise ActiveRecord::RecordNotFound.new
 # コメントオブジェクトを作成し、記事IDを設定
 comment = Comment.new(params[:comment])
 comment.post_id = post.id
 begin
  # トランザクション開始
  Post.transaction do
   # コメントをセーブ
   comment.save!
   # コメントがセーブできたら、コメント数を1増やす
   post.comment_count += 1
   post.save!
  end
  # エラーがなければ 'OK' を出力
  render :text=>'OK'
 rescue ActiveRecord::RecordInvalid => ex
  # エラーがあれば、エラーメッセージを出力
  errmsg = comment.errors.collect{|arr| arr.join(': ')}.join("¥n")
  response.status = 422
  render :text=>errmsg
 end
end


638:nobodyさん
10/01/04 01:57:03 14ehE+TL
無駄が多くて全然railsっぽくない。以下のようにするといいよ。

def add_comment
 # ブログ記事のモデルオブジェクトを検索
 post = Post.find(params[:id]) # raise は明示的に書く必要はない。

 # アソシエーションを利用してコメントオブジェクトをビルド(post_idは自動的に代入される)
 comment = post.comment.build
 # パラメーターでアップデート(うろ覚えなのでシンタックスエラーがあるかも)
 comment.update_attributes!(params[:comment])
end

コメント数はcomment_countカラムを作らずに以下で数えるほうがいいと思うけど。よほど膨大な(100万単位の)コメントがつかない限り。
Comment.count(:conditions => 条件)



639:nobodyさん
10/01/04 02:01:50
>>636
なるべく生のsql文は使いたくなくて
でもまぁこれが一番手っ取り早いか

640:nobodyさん
10/01/04 02:08:21
営業能力も上げていかないと技術だけでは35歳以上はこの業界では生き残れないと断言しよう
40歳過ぎにもなれば、営業能力70%技術力30%くらいの割合になるマジで
同じ会社で死ぬまで雇ってもらえるなら別だが
そんな保障はどこにもない


641:nobodyさん
10/01/04 02:09:27 14ehE+TL
それに def add comment でなくて、
restfulに書くならばComment Controllerを作って、createアクションで処理する方がいいよ。
before_filter でPost.find(:post_id) を常にしておくべき。
そうすればその情報を使ってアソシエーションに沿ってコメントを作成できる。

642:nobodyさん
10/01/04 14:14:39 CMnexdc2
Rails 3.0.pre で遊ぶ準備
URLリンク(sakuro.tumblr.com)


643:nobodyさん
10/01/04 20:11:46 CMnexdc2
Getting a New App Running on Edge
URLリンク(weblog.rubyonrails.org)
So people have been attempting to get a Rails app up and running recently.
I also have some apps in development on Rails 3

644:nobodyさん
10/01/04 20:48:54
>>637
自習するのは止めないけど、belongs_to の :counter_cache も忘れないで。


645:nobodyさん
10/01/04 23:22:51
>>639
亀レスだが has_many :people, :foreign_key=> 'original_key_name'
とかじゃダメなのか?

646:nobodyさん
10/01/05 02:00:40
>>645
おぉ。これでkeyを指定できるようになるのか。便利。

647:nobodyさん
10/01/05 06:24:05
>>638
どうもありがとうございます。raiseは書かなくていいんですか。なるほどー。

> コメント数はcomment_countカラムを作らずに以下で数えるほうがいいと思うけど。よほど膨大な(100万単位の)コメントがつかない限り。
> Comment.count(:conditions => 条件)

すべての記事を、コメントやトラックバックの多い順でソートする機能を付けようとしています。
その場合、記事ごとにコメント数がついていたほうが簡単かつ高速なので、comment_countカラムを作っています。
とりあえず、トランザクションまわりについては>>637であってるのでしょうか。
詳しい方、お願いします。

648:nobodyさん
10/01/05 10:27:07
>>647
コメント削除したらコメントカウントのカラムもupdateしないといけない
面倒くせ

649:nobodyさん
10/01/05 10:42:18
ソートする機能を考慮しても
コメント数はcomment_countカラムを作る必要性がわからん
また高速性を考えるならrailsを使う意味がない、生産性重視ならcomment_countカラムはいらん

650:nobodyさん
10/01/05 10:57:18 DXl89df8

イノベーションのジレンマ - Wikipedia
URLリンク(ja.wikipedia.org)

ディスラプティブ技術 - Wikipedia
URLリンク(ja.wikipedia.org)

スタートアップの始め方
URLリンク(www.aoky.net)
テクノロジーの世界では、常にローエンドがハイエンドを食っている。
安価な製品をより強力にするほうが、強力な製品を安くするよりも簡単なのだ。
だから安価でシンプルというところから始めた製品は徐々に強力なものへと成長していき、水が部屋に満ちるように、
「ハイエンド」の製品を天井の方へと押し込めることになる。
Sunはこれをメインフレームに対して行い、IntelはSunに対して行っている。

651:nobodyさん
10/01/05 14:54:37 s5/1mF78


Twitter創始者が語るWeb 2.0の要諦 ― @IT
URLリンク(www.atmarkit.co.jp)
Railsを使って2週間でプロトタイプが完成
ウィリアム氏がOdeo内で始めた小さなプロジェクトが「Twitter」だ。
Ruby on Railsを使って2週間で最初の動くバージョンを作り上げたという。


Twitterをはじめると2週間でブログの更新が止まる理由 そしてはじまる(かもしれない)総表現社会 - mizchi log
URLリンク(d.hatena.ne.jp)



652:nobodyさん
10/01/05 22:42:48
>>647
transactionの使い方はそんな感じでいいと思う。
do..endのなかでsave!とかupdate_attributes!ね。AR::RecordNotSaved系の
例外が飛んで、transctionがrollbackする。

ただ、検索したり保存したりは >>638 の書いているコードのほうがキレイなので
それを参考にした方がいい。

コメント件数は>>644のいうとおり、counter_cacheを使うと同じようなことを
ARが勝手にやってくれるので、プロダクションコードではそちらを使う方がいいと思う。

あと >>649
> また高速性を考えるならrailsを使う意味がない、生産性重視ならcomment_countカラムはいらん

んなこたない。
counter_cacheなり、それの自作なりを使わないでソートするためには、
Rubyでゴリゴリ書くか、相関サブクエリ使うことになると思うんだけど、
前者はさすがに遅い/無駄だし、後者は面倒なだけだと思うんだけどどうか。

653:nobodyさん
10/01/06 03:03:28
>>652
コメントカウント出すサブクエリなんてなんて1分もあれば書けるだろ
面倒なのかな?

654:nobodyさん
10/01/06 12:25:42 3+83O9QS
Rails 3 in Action
URLリンク(www.manning.com)
Yehuda Katz
MEAP Release: 2009
Softbound print: April 2010 (est.) | pages
ISBN: 9781935182276

1. Building Your First Rails 3.0 Application
2. Overview of the Rails stack(s) + architecture
3. Creating Rails Applications
4. Using DataMapper for Models
5. Using ActiveRecord for Models
6. Other Choices for Models
7. Processing Requests
8. Routing in Rails 3
9. Customizing Views
10. Working on the Client Side
11. Supporting Characters
12. Using the Plugin API
13. Testing Your Applications
14. Deploying a Rails Application
15. Scaling Rails

Appendix A Just enough advanced Ruby
Appendix B The migration story
Appendix C Rails 2 to Rails 3
Appendix D Merb 1 to Rails 3

655:nobodyさん
10/01/06 16:39:08 3+83O9QS
URLリンク(www.engineyard.com)

656:nobodyさん
10/01/06 16:45:50 3+83O9QS
Rails 3 beta eyed for late January release
URLリンク(www.computerworld.com)

657:nobodyさん
10/01/07 09:51:46 acpOW5s0
David Heinemeier Hansson
Bibliography
URLリンク(www.amazon.com)


658:nobodyさん
10/01/08 02:25:13
SQLite3で排他制御する場合どうすればいいですか?

SQLite3にはSELECT FOR UPDATEはないので
find(:lock => true)は使えないですよね。

トランザクションを
BEGIN IMEDIATE TRANSACTION
で開始すればいいのじゃないかと思うんですが
どこに書いたらいいものか分かりません。

659:nobodyさん
10/01/09 14:09:25 C3iGMVdd
SELECT FOR UPDATE なんて使わないから、使える

660:nobodyさん
10/01/09 18:20:07 eVooFF5+

Phusion Passenger 2.2.9 released
URLリンク(blog.phusion.nl)
Fixed compatibility with Rails 3.


661:nobodyさん
10/01/10 02:02:57
>>659
すいません。
だれ(なに)が使わないので
だれ(なに)が使えるのでしょうか?



662:nobodyさん
10/01/10 12:04:22 shGxwVTU
URLリンク(intertwingly.net)

663:nobodyさん
10/01/10 12:10:39 shGxwVTU

URLリンク(intertwingly.net)

664:nobodyさん
10/01/10 21:44:08
>>659
小学生でもわかる日本語でおねがいします

665:nobodyさん
10/01/11 11:52:44
馬鹿にはrorは無理。

666:nobodyさん
10/01/11 17:01:28
config/environment.rb にいろんな設定書くけど、
独自に設定を追加してもいいんでしょうか。
Rails::Initializer.run do |config|
 config.my_value = 'foobar'
end
みたいな。
あと、それを追加したとして、読み出す方法を教えてください。

667:nobodyさん
10/01/11 19:32:25 yaZxWBJR
ActiveModel: Make Any Ruby Object Feel Like ActiveRecord
URLリンク(yehudakatz.com)

668:nobodyさん
10/01/11 20:46:07
>>666
config(Rails::Configuration)はRails本体の設定しか受け付けない。
定数使って
MY_CONFIG = { :foo => 'bar', :hoge => 'fuga' }
のようにするのが手っ取り早い。

ちなみにアプリの利用者が変更する必要がない設定は
config/environment.rbやconfig/enviroments/*.rbに書く。
利用者が変えられる設定ならconfig/initializers/*.rbに書く(2.0以降のみ)。

設定が大量になりそうならYAMLファイルで外に出してenvironment.rbなどから読み込むか、
configatronのようなプラグインを使うか。

669:nobodyさん
10/01/12 00:22:34
質問主ではないが、勉強になった。
ありがとん > 668


670:nobodyさん
10/01/12 03:14:39
ここでアホな質問してる人らって、わからんことあったらまずここに書いて
のんびりテレビでも見てんの?

671:nobodyさん
10/01/12 04:35:12
アホな質問続きだが
railsで使用しているpluginのバージョンを一括表示する方法ってない?
script/about みたいな感じで。

672:nobodyさん
10/01/12 04:46:22 609VTkN+


Rails and Merb Merge: Plugin API (Part 3 of 6) | Engine Yard Blog
URLリンク(www.engineyard.com)

673:nobodyさん
10/01/12 19:07:46
Paginateを使いたいのですが以下のエラーが出ます。
---
undefined method `total_pages' for #<Array:0x5bcc4d8>

Extracted source (around line #42):
42: <%= will_paginate @items %>
---

scaffoldで新しくひな形を作り、

environment.rb の一番下に require 'will_paginate'

index.html.erb の一番下に <%= will_paginate @items %>

pages_controller.rb に
def list
@items = Item.paginate :page => params[:page], :per_page => 10
end

これらを追加しただけなのですが、何が原因でしょうか。

674:nobodyさん
10/01/12 20:02:14
質問させてください。

テストサーバー(staging環境)用にproduction環境でRailsアプリを動かしているのですが、
エラーが出たときにサーバーにもぐっていちいちlog/production.logを見るのが面倒です。
また、サーバーのログイン権限が無い開発者にもローカルの開発サーバー(webrickやmongrelのdevelopment環境)のように
エラー内容を人目でわかるようにしたいのですが、そのようにエラーを表示する方法はないものでしょうか?

675:nobodyさん
10/01/12 20:27:20 4XZzyMEc
>>666
configatron
URLリンク(www.moongift.jp)

676:nobodyさん
10/01/12 22:54:24
>>673
なぜpages_controller.rb? その説明だけだと、items_controllerになりそうな感じだけど。

677:nobodyさん
10/01/12 22:57:41
>>671
これ使うとか。自分はまだ使ったことないけど。
URLリンク(github.com)

>>673
ヘルパーメソッドのwill_paginateに渡すのはArrayじゃなくて、
paginateの戻り値のWillPaginate::Collectionじゃないといけない。
なので、コントローラかビューのなかで@itemsをArrayにしちゃってないか確認してみて。

>>674
・Exception Logger:DBにエラーを保存してアプリ上で閲覧
・Exception Notifier:エラーをメールで送信
・Syslogに記録:URLリンク(blog.s21g.com)
・Clarity:ログ監視ウェブアプリ URLリンク(www.moongift.jp)

678:nobodyさん
10/01/14 21:03:02 MmCuc8fs

Do One Thing for Rails 3 on January 16th and 17th
URLリンク(railsbridge.org)

679:674
10/01/14 21:35:26
>>677
たくさんありがとうございます!

一番下の見ていて、webでログ監視すればいいのかって気づいて
tailコマンドのphp版設置してみました。部内LANサーバーなので問題ないです。
php1ファイルで設置らくちんw ちょっと不便ですが、致命的になるまではこれで試してみます。
jQueryとPHPでLinuxのtailコマンドを実装する - EC studio 技術ブログ
URLリンク(techblog.ecstudio.jp)

680:nobodyさん
10/01/15 16:09:17
MYSQLで以下のようなテーブルを使っています。
| id | name | email | check(boolean型) |

restful_authenticationプラグインのsignupでユーザーを新規登録した時、
"check"に自動的に0の値を入れたいのですがどのようにすれば良いでしょうか?

681:nobodyさん
10/01/15 17:33:21
スキーマ定義を触れるならMySQLのcreate tableのほうで、
checkカラムにデフォルト値0を設定しておけばいいと思う。
create/save時に未指定なら0が入る。
あとはbefore_saveとかafter_initializeとかのフック。


682:nobodyさん
10/01/16 04:57:42
>>680
はてなのタケルンバさんのblogで丁寧にまとめられていますよ

683:nobodyさん
10/01/16 20:30:35
基本的にJava屋で、今年からRailsをやってます。

find_by_sqlってのを見つけた瞬間、

find_by_sql("select col1, col2 from table")

って感じで使いまくってんだけど、これっていいのだろうか?
だっせー、かっこわりーって思われないだろうか?

684:nobodyさん
10/01/16 20:37:30
求めるタスクがこなせてるならいーんじゃない?


685:nobodyさん
10/01/16 21:25:58
>683
ダサい。
なんでリファレンスをちゃんと読まないんだ。自称Java屋のくせに。

686:nobodyさん
10/01/16 22:29:46
>>683
ほんとにその程度のSQLで使ってるのなら、
ださいとかじゃなくてありえない

687:nobodyさん
10/01/16 23:25:29
もう転職考えた方がいいレベル

688:nobodyさん
10/01/17 00:01:02
>>683
>find_by_sql("select col1, col2 from table")

あれ、Table.find() って col1, col2 の指定ってできたっけ?
できなかったと思うから、自分もfind_by_sqlよくつかうよ。



689:nobodyさん
10/01/17 00:04:41
外のカラムが不要な場合は Table.find(:all, :select => 'col1, col2')


690:nobodyさん
10/01/17 00:05:44
うおっ

× 外(ほか)
○ 他(ほか)


691:nobodyさん
10/01/17 03:56:17
タケルンバに失笑されるレベル
Javaフレームワークは使ったことないんだろか


692:nobodyさん
10/01/17 10:33:43
>>688
間違えた、find_by_sql()じゃなくてActiveRecord::Base.connection.select_rows(sql)だった。
group byやhavingが入るようなsqlだとこっちのほうが楽なんだけど、そんなことない?

693:nobodyさん
10/01/17 10:41:10
AR::Baseとして取り出す必要がないならそれも手ではある。


694:nobodyさん
10/01/17 11:30:47
パフォーマンス(笑)のためだったりするんだろうか。

695:nobodyさん
10/01/17 16:13:12 mYKzzqeT
683です。

なるほど、やっぱりダサいのか
ちなみに例に上げたのは簡単なやつだけど
実際に使ってるのは、サブクエリーが絡むような複雑なやつなんだけどね

>> 691
Hibernate使ってたけど、あまり好きじゃないね

>> 694
find_by_sqlの方が、パフォーマンスよくなるん?

696:nobodyさん
10/01/18 09:03:43 BApO165G

日本の富豪40人(2010年) - フォーブス長者番付・億万長者ランキング
URLリンク(memorva.jp)
田中良和 グリー創業者 IT 32 1.60 1456億円
笠原健治 ミクシィ創業者 IT 34 0.72 655億円

697:nobodyさん
10/01/19 13:32:36 aU7LUmun
passengerでrails動かしたいのですが、
DocumentRootにアクセスしてもdispatcher.fcgiのソースが表示されてしまいます。

これって正しくモジュールが読み込まれてないからなんでしょうか。
httpd.confにはLoadModuleもしてるしapacheのエラーは出てません。
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.9/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.9
PassengerRuby /usr/bin/ruby

どなたか原因解明の手がかりwご存知の方ご教授願います。

698:nobodyさん
10/01/19 23:30:34
.htaccessはどうなってる?

699:nobodyさん
10/01/20 16:17:25
railsを勉強しようと思うんですが、初心者向けで
お勧めの本はありますか?あるいは、これは読んで
おくべき本でも構いません。

700:nobodyさん
10/01/20 17:16:39
ちょっと古いかもしれないけど

かんたんRuby on RailsでWebアプリケーション開発
著者 arton さん
URLリンク(www.amazon.co.jp)

701:nobodyさん
10/01/20 17:53:46
>>699
ム板で回答しておいたのでそれを貼っときます。

Ruby 初心者スレッド Part 33
スレリンク(tech板:804番)

804 名前:デフォルトの名無しさん[sage] 投稿日:2010/01/20(水) 16:21:54
>>800
初心者が最低限これだけあればまずはなんとかなる!って書籍を3つ。
というか俺が実際にRails初心者レベルで仕事で使った本

・RailsによるアジャイルWebアプリケーション開発
URLリンク(www.amazon.co.jp)

・Ruby on Rails 逆引きクイックリファレンス Rails 2.0対応
URLリンク(www.amazon.co.jp)

・Railsレシピブック 183の技
URLリンク(www.amazon.co.jp)

あとは、webサイトだけど公式のガイド。ちょっとしたわからんことはまずこれ見たら大体すむ
Ruby on Rails guides
URLリンク(guides.rubyonrails.org)

毎回聞かれてるんで、Railsスレテンプレに入れといていいと思うんだ・・・

702:nobodyさん
10/01/20 17:58:26
ついでに質問いいでしょうか?

script/serverで開発用のmongrelなどを立ち上げた場合は、
動的に読み込んでくれているためか大概は開発中にファイルの編集後でも
コードの反映はサーバーを立ち上げ直さずにブラウザのリロードで済みますよね?

こういうのをscript/consoleでする方法ってないもんでしょうか?
script/consoleの再起動はそんなに重くないとはいえ、何回もやってたらけっこう面倒です。
再度requireする?のがよいんでしょうか?

703:nobodyさん
10/01/20 17:58:49
>>699
最近、Head First Railsて本の翻訳が出てて、洋書を読んだ感じだとだいぶよかった。
Rails 2.3にも対応している唯一?の本なので、独特のテンションが嫌いじゃなきゃかなりオススメ。

704:nobodyさん
10/01/20 18:50:18
質問させてください。

コントローラーのbefore_filterのような感じで、レンダリング前にメソッドを実行するようなフィルタは定義できないものでしょうか?
layout/application.html.erb 内でコントローラーのメソッドを(ヘルパー化して)呼ぶしか無いでしょうか?

705:704
10/01/20 18:57:33
> layout/application.html.erb 内でコントローラーのメソッドを(ヘルパー化して)呼ぶしか無いでしょうか?
これダメでした。

ヘルパー内で @hoge = 1234 のようにしてもerbの方に反映されませんね…。
layout/application.html.erb の最初の行にロジックを直書きして対処しました。
何かいい方法ないもんですかね

706:nobodyさん
10/01/20 19:46:07
>>699
Head First Railsが今一番新しくて初心者向けの本、オススメ。
これでわからなかったらRailsは諦めて別なのをやった方がいい。

あと
RailsによるアジャイルWebアプリケーション開発の第三版がオススメ
第二版と初版は古いバージョンのRails用だから間違って買うと泣くはめになる。



707:nobodyさん
10/01/20 19:47:15
Rubyスレで質問して、Railスレ逝けと言われて来ました。

今回初めてRubyを仕事で扱うことになり、
RailsによるアジャイルWebアプリケーション開発のⅠ部を読んで
Smarty使って、PHPで開発するのとそう変わらないなと思い、
本ちゃんプログラムの解析にかかったのですが・・・

・ controllers,models,viewsともにjsファイルばかり。
・ ブラウザでソースをみたら、ログイン画面なのに1万行近くソースがある。
・ 画面遷移しても、URLは変わらない。
・ サーバーとクライアントのソースがある?

等、ちょっと見かけたことのない構成でした。
こりゃわからんと思い、参考書の続きを読もうとしましたが、
そもそも参考書読んでわかる内容なのか疑問を持ちまして・・・

そこで、質問なのですが
1.上記のような構成はRailsでは一般的で初心者レベルの話
2.それなりに高度な技術で初心者が参考書を読んだ程度で
  太刀打ちできるレベルの内容ではない
3.製作者が変態。そんな作り聞いたことがない。まず見かけない。

いずれですか。
1なら参考書読んで調べます(キーになる単語を教えてくれると助かります)
2ならダメぽと上に報告します。
3なら・・・頑張ります。

以上、教えて下さい。。。

708:nobodyさん
10/01/20 19:49:37
あとRails始めるなら
RSpecも同時に調べておいた方がいい。
BDD、TDDなどの開発手法を要チェック。
cucumberも

709:nobodyさん
10/01/20 19:51:53
>>707
>>706

710:nobodyさん
10/01/20 19:58:41
>>707
たぶんほとんど全機能をAJAXで実装しているんじゃないかね。
Railsがその中でどう使われているかは質問だけでは分からないけど…


711:nobodyさん
10/01/20 20:38:09
>>710
ありがとうございます。
確かに、ブラウザの戻るボタンがグレーアウトしてる等
思い当たる節はあります。

AJAXを使用しまくっているという前提に立ってもう一度
解読してみます。

712:nobodyさん
10/01/20 22:19:08 Qj1mXafK
>>702
reload!

713:nobodyさん
10/01/21 00:05:32
>>704
レンダリング前ってつまりcontrollerのアクション内がそうだけど、
ビューのレンダリングのタイミングで処理したい理由は?

>>707
これだよね?
URLリンク(www.amazon.co.jp)

ソースコード↓を見ても、Ajaxなんて使ってないけど。
URLリンク(www.ohmsha.co.jp)

第1版しか読んでないけど、最初から全部Ajaxで作るみたいな珍妙な本ではないはず。

714:nobodyさん
10/01/21 00:14:02
>>713
本で学んだ後「本ちゃんのプログラム」にとりかかっている、と解釈した。


715:704
10/01/21 08:26:59
>>713
ありがとうございます。

layouts/application.html.erbのサイドバー内に
サイドバーなどにDBからクエリーしてきた最新の結果を常に表示したい、という感じです。

例えが難しいのですが、例えば睡眠時間を記録するサイトで
サイドバーに今日の睡眠時間、といったような数値を表示したいとします。
その場合、application_controllerにbefore_filterかまして
毎度呼ばれるのメソッド内にて今日の睡眠時間を取得する処理を書くと、
コントローラー内で処理をする前の数値を取得してしまいます。
コントローラー内で処理をした後の数値を表示したいのです(つまりできるだけレンダリング前に)。

なので、layouts/application.html.erbの先頭に、
今日の睡眠時間を取得する処理を書いちゃえ!ってことなんですが、
(できるだけモデル依存部はモデルに書くとしても)そういうロジックをviewに各のはどうなんだ、と思った次第です。

716:nobodyさん
10/01/21 08:32:44
>>707
適当に予想します。

jsばっかり=フロントエンドがAJAX(JavaScript)、バックエンド処理がRails
(それでもmodelsがjsばっかりはない気が?)
JS(AJAX)がクライアント処理、サーバーがRailsと見た。

RSSリーダーのOpen Fastladder(Livedoor ReaderのRails実装でソース公開されてるやつ)
みたいなのをイメージしたんだけど違うかな。
つまり、RailsでwebアプリのAPIをガリガリ書いて、JavaScriptでガワを作るような構造。

まずは、テストコードを読むことから始めたらどうかな?
ちゃんとしたアプリならテストがたくさん書かれているはずなので、
どんな感じにモデルを扱っているかとか仕組みがわかるはず。

717:nobodyさん
10/01/21 09:21:00
>>715
after_filterじゃいかんの?

718:nobodyさん
10/01/21 11:03:39
scaffoldした時のshowアクションの挙動を止めたいんですが、何か方法はありますか?

新しい独自のアクション(hoge)を追加したときに、コントローラ名/hogeというアドレスに
アクセスすると、showアクションでIDがhogeという風に動作してしまいます

route.rbにて:exceptや:onlyなどを用いてshowアクションを取り除くようにしてみましたが、いずれも駄目でした

719:nobodyさん
10/01/21 19:03:10
migrationの質問です。

DBのmigrationでself.downに元に戻す処理を書くと思うのですが、
カラムの追加や変更等簡単な処理は元に戻す処理は簡単にかけるのですが、
例えば、仕様変更であるキーの重複するレコードを削除するとか、その処理を元に戻す場合だと
処理が複雑で簡単には元に戻せなかったりしませんか?

そのような場合、self.downをどのように書いたものでしょうか?
self.upで変更するレコードを外部ファイルにまるごと(mysqldumpとかで)ダンプして、
self.downで戻すときはダンプしたのを(mysqlコマンドに)つっこむとかそういうったことしないといけないものなのでしょうか?

今は、整合性が取れなくならない場合(カラムとかをいじらないとか)で元に戻す処理が複雑な場合は、
self.downを書かなかったりしますが、どうしたものかなーと。

運用サーバーの方ではcapistranoでデプロイでdb:migrateをかけるときには
自動でmysqldumpするようにしかけてあるのでバックアップ自体は大丈夫なのですが・・・


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch