【Ruby】Ruby on Rails Part8
at PHP
[前50を表示]
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 の話です。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5388日前に更新/279 KB
担当:undef