【Ruby】Ruby on Rails Part8
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/09/13(日) 20:49:34ID:kz4rC4Dxhttp://pc11.2ch.net/test/read.cgi/php/1241100447/
■参考サイト
<英語>
本家:http://www.rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
■参考スレ(プログラム板)
Rubyについて Part 37
http://pc12.2ch.net/test/read.cgi/tech/1251029267/
Ruby 初心者スレッド Part 30
http://pc12.2ch.net/test/read.cgi/tech/1249687283/
0412nobodyさん
2009/11/12(木) 22:47:21ID:???返ってきた結果セットがほぼ同時に別プロセスで
実行していた別なSQLのものに変わってしまっています。
mysqlの設定などでチェックすべきところとかないでしょうか?
0413nobodyさん
2009/11/12(木) 23:21:24ID:???無指定の map.resources だけだとそこまで面倒みてくれない。
map.resources に追加するか、昔ながらのやり方で
map.foobar_hoge 'hoge/foobar', :controller => 'hoge', :action => 'foobar'
のように定義してやるとか。
0414nobodyさん
2009/11/12(木) 23:37:15ID:???やったことないけど
0415411
2009/11/14(土) 04:27:35ID:???ありがとうございます。
こちらでも試してみましたが、やはり、必要なのですね。
>>411のは間違ってまして、/hoge/foobarの場合は、
map.resources :hoge, :collection => { :foobar => :get }
でした。
/hoge/1/foobarなら、>>411のでいいみたいです。
0416nobodyさん
2009/11/17(火) 14:03:16ID:???psousa's baseapp-orange at master - GitHub
http://github.com/psousa/baseapp-orange
以前でてた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
とするのですが、何ごともなく終了します。
どうしたものでしょうか?
0417416
2009/11/17(火) 14:16:18ID:???ないならgemいれればいいんじゃね?という当たり前の結論で、
gem install capistrano-ext
したら、無事に通りました。(db:migrateでDBないと言われたので、rake db:createしましたら行けました)
しかし、何でこんな動作になっているのだろう?
なるべくシステムに入っているgemを使いたいのですが、満載のvendor/gems以下や、vendor/rails以下は
手動で削除しちゃっていいものなのでしょうか?
0418nobodyさん
2009/11/17(火) 16:12:30ID:???0419nobodyさん
2009/11/17(火) 16:13:42ID:???0422nobodyさん
2009/11/18(水) 02:13:20ID:???画面の遷移がない場合5分経ったらセッションを消してログアウト状態にしたいと思っています。
以前はacts_as_authenticatedを使って、ログインされたらデータベースのsessionテーブルにユーザーの
session情報を保存しておいて、ユーザーが画面遷移をしたら、そのsession情報を更新しておき
5分おきにsessionテーブルを監視して、更新時間が5分以上経ってたらsessionテーブルから削除するようにして
ログアウト状態を再現していました。
restful_authenticationを使う場合は、データベースに値を持たなくても上記のような事ができるのでしょうか?
すみませんが、お知恵をお貸しください。宜しくお願いします。
0423nobodyさん
2009/11/18(水) 17:36:25ID:8qlvL/3iどこのファイルにおくのがおすすめでしょうか。
JP_STATES = [
'北海道',
'青森’,
...
]
こんな感じのデータです。
0424nobodyさん
2009/11/18(水) 18:51:10ID:???0425nobodyさん
2009/11/18(水) 22:12:48ID:???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
0426nobodyさん
2009/11/18(水) 22:14:23ID:???0427nobodyさん
2009/11/19(木) 00:14:02ID:???url_forとかhoge_urlとかはモデルから使えないので、リンク生成をどうしたものかと思っています。
config/routes.rbの設定と重複しないために、できればURL生成メソッドで作りたいのですが
どうにかできないでしょうか?
0428nobodyさん
2009/11/19(木) 15:24:41ID:???モデルじゃなくて(モデルでもいいけど)、
ふつうのライブラリみたいに lib/以下にParserとしておいて、
コンストラクタでコントローラーのインスタンスを渡す、とかどうだろか
lib/以下に置く時の注意は、moduleにしてRailsが想定する名前の付けか足しておくと、
requireとかしなくても、自動で読んでくれる。はず。
詳しい方きぼん
0429nobodyさん
2009/11/19(木) 15:32:45ID:???今は、
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側におけないものでしょうか?
0430nobodyさん
2009/11/19(木) 20:01:14ID:???現象:
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のチュートリアルだと
ttp://rspec.info/rails/writing/controllers.html
get 'some_action'
response.should have_text("expected text")
とあるので、getだけでいいと思うんですけど、ほかに何か必要でしょうか。
0431nobodyさん
2009/11/19(木) 21:37:22ID:???プラグイン化するとか。
結局はincludeするんだけど、vendor/plugins に丸ごと置くだけでよくはなる。
0432nobodyさん
2009/11/20(金) 16:48:45ID:???「rails text2html」でぐぐっても、それらしいのは見つからず。
0433nobodyさん
2009/11/20(金) 17:56:43ID:???日本語のファイルがUTF-8で生成されてWindows上で文字化けします
ファイルを保存するときにSJISに変換しないといけないのでしょうか?
NTFS自体はUNICODE対応のはずだし
なにかが間違ってるような気がするんです
0434nobodyさん
2009/11/20(金) 18:02:42ID:???textile とか markdown のこと?
>433
お前が間違ってる
0435nobodyさん
2009/11/20(金) 18:55:59ID:???0437nobodyさん
2009/11/22(日) 03:24:06ID:???parentモデルにhas_many :childを指定してchlidテーブルに
belogns_to :parentと指定します。
この状態の時に「parent.child.replace = @child」でchildに値をセットして
parent.saveとすると新規登録はされるんですが、更新が上手く行きません。
何か書き方がいけないのでしょうか?それとも仕様でしょうか?
ruby 1.8.6でrailsは2.2.2です。
よろしくおねがいします。
0438nobodyさん
2009/11/22(日) 04:51:41ID:Z6X1KQFWUNICODEで保存?
UTF-8/16じゃなく?
0439nobodyさん
2009/11/22(日) 06:54:00ID:???OpenFileA()じゃなくて
OpenFileW()使えっていう意味では
0440nobodyさん
2009/11/23(月) 20:58:50ID:???jRailsというのがあったみたいですが、公式サイトなくなってるし・・・
jRails - jQuery on Rails
http://ennerchi.com/projects/jrails
0441nobodyさん
2009/11/23(月) 21:27:37ID:???0442nobodyさん
2009/11/24(火) 00:15:15ID:???ruby script/serverを実行した際に
C:\rails\hello>ruby script/server
=> Booting Mongrel
=> Rails 2.3.4 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
でコマンドプロンプトが次のWEBRICKが起動した〜などを出力してくれません
Ctrl-Cをしてもサーバーは停止できません
一度だけこの状態で長時間放置したときに
500 Internal Server Error
unknown error
という表示がされました
解決方法がさっぱりわかりません
どなたか解決方法知っている方がいれば教えていただけるとありがたいです
0443nobodyさん
2009/11/24(火) 00:38:56ID:???http://github.com/aaronchi/jrails
0444nobodyさん
2009/11/24(火) 03:53:25ID:igGLII2Vまるち
0445nobodyさん
2009/11/24(火) 07:33:31ID:???誘導されておきながらそれを書かないからマルチ扱いされる
あと誘導前のスレにも移動する事くらい書いた方がいい
ちなみにMongrelの事は知らないので質問には答えられない
0446nobodyさん
2009/11/24(火) 09:45:43ID:???もっと詳しく。
エスパーは希少なのでそれだけの情報では足りない。
何が足りないのかは考えろ。
0447nobodyさん
2009/11/25(水) 01:38:14ID:???自分で調べる能力無いなら、サポートしてくれる業者を捜すなり、商用ソフトでも使ってサポート受けたら?
http://pc11.2ch.net/test/read.cgi/php/1258187482/
【PHP】下らねぇ質問はID出して書き込みやがれ 90
http://pc11.2ch.net/test/read.cgi/php/1251803164/
【質問】ASP.NETスレ Part6【雑談】
http://pc11.2ch.net/test/read.cgi/php/1222645553/
【 スクリプト改造依頼スレ】(丸投げ) part7再々
http://pc11.2ch.net/test/read.cgi/php/1257701535/
△▲ WebProg 初心者の質問 Part21 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1158647441/
くだらない質問でもど偉そうに聞いていいスレ
0448nobodyさん
2009/11/25(水) 16:20:37ID:???何をしたいのか、何を聞きたいのか、意味がわからん。
mongrelをgemで入れている環境なら、script/serverはwebrickではなく自動でmongrelが起動するよ。
webrickを明示的に起動したかったら、 script/server webrick
とかするんじゃなかったかな?調べてみて。
Ctrl-Cは何回かおしたら止まる気はする
0449nobodyさん
2009/11/25(水) 16:25:33ID:???viewやヘルパーを書く時に、javascriptのパスを渡したいのですが、
javascrip_path "hoge" などと書くと、
/javascript/hoge.js
というのが得られるのですが、viewでjavascript_include_tagメソッドで得られるように、
/javascript/hoge.js?1259048403
のようなキャッシュしないパスを簡単に得るメソッドはないものでしょうか?
ソースも見ているんですが、どこで付加されているのかイマイチわからんです・・・
0450449
2009/11/25(水) 16:51:10ID:???ApplicationController.helpers.javascript_path "hoge"
hoge.js?1235343 のようになってくれません。
Rails consoleで上記を試すとちゃんとついてくれるのですが・・・
0451nobodyさん
2009/11/25(水) 17:02:11ID:???cache_asset_timestamps
0452449
2009/11/25(水) 17:24:16ID:???ありがとうございます。
ソースも見ていたのですが、該当箇所はわかりました。
javascript_path→compute_public_pathときて、rewrite_asset_path内で?のあとにタイムスタンプを付加しているようでした。
で実はできねーよヽ(`Д´)ノ ウワァァン!!と思って四苦八苦していたのですが、
別のビューの似たようなページのソースをずっと見ていました orz
正しいページを見たら、ちゃんと
/javascript/hoge.js?1259048403
というようになっていました。
解決しました。
おかげさまでありがとうございました。スレよごしスマソ
0453nobodyさん
2009/11/26(木) 11:02:42ID:S4TWLvc3Ruby 1.9 And Rails 3.0
http://www.slideshare.net/arrrrcamp/ruby-19-and-rails-30
0454nobodyさん
2009/11/26(木) 17:33:35ID:???0455nobodyさん
2009/11/26(木) 17:50:14ID:???0456nobodyさん
2009/11/26(木) 19:34:03ID:S4TWLvc3First look at rails 3.0.pre
http://drnicwilliams.com/2009/11/03/first-look-at-rails-3-0-pre/
http://woodie-rails.appspot.com/
rails 3.0 pre
http://github.com/rails/rails/commit/db3de78a83379ab2a58e0d29fb10622b813a4d44
http://woodie-rails.appspot.com/
0457nobodyさん
2009/11/27(金) 00:40:04ID:???0458nobodyさん
2009/11/27(金) 16:27:52ID:uE3HMbl50459nobodyさん
2009/11/27(金) 17:51:25ID:???0460nobodyさん
2009/11/27(金) 18:43:36ID:???ja:
Hello: こんにちは
と書いた。あとconfig/environment.rbに
config.i18n.default_locale = :ja
を追加した。それでも ruby script/console を実行して
irb> I18n.t('Hello')
=> "translation missing: ja, Hello"
となる。
何が足りない?誰か助けて。
0461nobodyさん
2009/11/27(金) 18:59:16ID:???サンプルの config/locales/en.yml にあるキーは小文字の hello なんだが、
YMLに小文字で書いて呼び出しで大文字のHelloを使っているのではあるまいか?
0462nobodyさん
2009/11/28(土) 00:57:41ID:???config/locales/ja.ymlは、このようになっていないと動かない。
この状態で、I18n.t("hello")で翻訳される事を確認した。
-----------------------
ja:
hello: こんにちは
-----------------------
単に、hello: の行だけでは動かなかった。
たぶん、そのあたりじゃない?
0463462
2009/11/28(土) 01:06:47ID:???よく見てみたら、>>460もちゃんと書いてたね。
ちなみに
ja:
hello: こんにちは(hello)
Hello: こんにちは(Hello)
って書いたら、こうなったので全部小文字で書かないといけない
という事はなさそう。
>> I18n.t("hello")
=> "こんにちは(hello)"
>> I18n.t("Hello")
=> "こんにちは(Hello)"
確認したrailsのバージョンは2.3.4。
0464nobodyさん
2009/11/28(土) 01:21:36ID:???全部小文字で書かないといけないというわけではなく、
ファイルでしたキーとコードから参照したキーが違ってるんじゃないかという
指摘だと思う。
ただのYAMLで定義したHashだし。
0465nobodyさん
2009/11/28(土) 17:18:18ID:gofPBBCV10,000,000 todos
http://twitter.com/dhh/status/6021870055
0466nobodyさん
2009/11/30(月) 00:11:03ID:???> 教祖がデビアンで開発してるから、
そのわりにパッケージが古いんだよな。
railsはgemで入れるとしてrubyがいつもチョット古いのが面倒だ。
0468nobodyさん
2009/11/30(月) 15:32:02ID:???というのが頻繁にでてくるので、ヘルパーメソッドを定義したい。
def default_val(val, default='-')
val.blank? ? default : val
end
・質問1: すでにこのようなメソッドはありますか?
・質問2: いいメソッド名があれば教えてください。
0469nobodyさん
2009/11/30(月) 16:49:47ID:???2: value_or_default(foo.bar.name) とかどうだろ
0471nobodyさん
2009/11/30(月) 19:20:53ID:???"" とか [] は #blank? になるけど真だからなあ。
0472nobodyさん
2009/11/30(月) 20:45:02ID:???0473nobodyさん
2009/11/30(月) 21:33:41ID:???0474nobodyさん
2009/12/01(火) 11:59:14ID:???fixturesは使わずに手軽にテストデータを入れようと、
勝手データテキストファイルと勝手スクリプトを書いて、
/db/migrateに両方起きつつ、NetBeans上からファイルを実行してみたのですが
ファイル読み込みの時点でNo such file or directoryとなってしまいます。
そこで質問ですが、
●このデータにアクセスさせるためにはどう書くべきですか?
●データ投入はfixturesを必ず使うべきですか?
よろしくお願いします。
0475nobodyさん
2009/12/01(火) 19:09:38ID:???知るか
0477nobodyさん
2009/12/02(水) 11:18:43ID:???あと必ずしもfixtureということもないと思う。
Rails 2.3.4では初期データの投入はseeds.rbを使うことが推奨されるみたいだよ
Rails アプリの初期データを設定する機能 - takihiroの日記
http://d.hatena.ne.jp/takihiro/20090906/1253523597
0478nobodyさん
2009/12/02(水) 11:21:25ID:???>>477似追記してコレも
Rails 2.3.4で追加されたseeds.rbについて - ひげろぐ
http://brass.to/blog/rails-2-3-4%E3%81%A7%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%81%9Fseeds-rb%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.html
0479nobodyさん
2009/12/02(水) 11:38:12ID:???セキュリティfixあるからいれろ
Riding Rails: Ruby on Rails 2.3.5 Released
http://weblog.rubyonrails.org/2009/11/30/ruby-on-rails-2-3-5-released
hなくてもエスケープするRailsXssプラグインが便利そうだ。生中出しするときはrawつける
0480nobodyさん
2009/12/02(水) 14:31:45ID:???というのをつくったのですが、ありがとうございましたページでブラウザの戻るボタンを押し、
再度Submitボタンを押すと、同じデータが送信されてしまいます。
これは二重サブミットと呼ばれているそうですけど、これを防ぐにはどうするのがいいんでしょうか。
よさげなプラグインとかありましたら教えてください。
0481nobodyさん
2009/12/02(水) 18:39:32ID:???買ったぞ。改訂版だから当然だけどパっと見で2版とほとんど内容変わらず…
2版で見慣れたスクリーンショットやコラムがそのまま載ってる。
これからじっくり読んでみよう
0483nobodyさん
2009/12/03(木) 05:28:57ID:???これで簡単にいけそうだな
Railsでトランザクショントークン(ダブルサブミット、2重登録対策)を使う - diaの備忘録
http://d.hatena.ne.jp/DianthuDia/20080911/1221140796
0484nobodyさん
2009/12/03(木) 09:20:01ID:???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で日付と数値を次々と入力していったものを
日付別のデータにして保存したい(例えばデイリーの累積グラフにしたり)という場合の話です。
0485484
2009/12/03(木) 09:23:29ID:???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
という累積したデータを保存しておくというのを想定しています。
0486nobodyさん
2009/12/03(木) 11:36:12ID:???0488nobodyさん
2009/12/03(木) 15:51:32ID:???config.active_record.default_timezone
0489nobodyさん
2009/12/04(金) 00:25:22ID:???0490nobodyさん
2009/12/04(金) 01:35:49ID:???UTCで保存する必要がないなら、config/environment.rbにある
config.time_zone = 'UTC'
この行をコメントアウトするか、削除すればローカルタイムで保存される。
>>489
UTCで保存して得した事なんて一度もないんだが、
どういうケースで役に立つの?
また、どういう場合に困るの?
0491nobodyさん
2009/12/04(金) 08:40:19ID:???国際的なアプリでユーザーの指定したタイムゾーンに合わせて
時間を表示するような場合は、ローカルタイム基準だと
話がややこしい。
どこからでも使われる可能性があるなら場所には依存しないほうが楽。
0493nobodyさん
2009/12/04(金) 18:21:14ID:???Controllerってどのように分けるものなんでしょうか?
例えば、ショッピングサイトだったら、
ログイン、ログアウト部分、カート部分、購入部分みたいに機能別でしょうか?
作成しているアプリは規模も小さいので、
Controller一つでもできそうなんですが、
後から見たときに管理しやすい形にしたくて。
0494nobodyさん
2009/12/04(金) 19:05:57ID:???質問が曖昧で答えようが無い。
modelと必要機能の一覧ぐらいは示してくれ。
0495nobodyさん
2009/12/05(土) 02:24:29ID:???0497nobodyさん
2009/12/05(土) 16:59:31ID:???Railsで重要な個人情報を扱うこと自体が怖い
簡易SNSとか個人で使うブログとかもっと軽いノリで作る時にしか使わない
0498nobodyさん
2009/12/05(土) 17:13:02ID:???開発者のセキュリティを考慮する能力しだいであって言語関係ないだろ。
0500nobodyさん
2009/12/05(土) 17:23:34ID:???0502nobodyさん
2009/12/05(土) 20:30:01ID:???IPAがどうした?
IPAはRuby/Railsに関する調査報告書を発表してる事は知っているし、
その内容はRailsを否定するものではない。
それからPHPについては、明らかに無関係だろう。
PHPなら問答無用でセキュリティに問題のないアプリケーションが出来上がるのか?
そんな訳があるまい。セキュリティは言語の問題ではなく、開発者側の問題だ。
0503nobodyさん
2009/12/05(土) 22:08:48ID:???IPAがPHPディスってんのは有名な話だけど、そのことなのかな?
IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第1章 総論:より良いWebアプリケーション設計のヒント
http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/003.html
0504nobodyさん
2009/12/05(土) 22:30:14ID:???0505nobodyさん
2009/12/05(土) 22:35:11ID:???どちらかを選べばセキュリティの問題が解決するってわけではない
という事でしょう。
利用する側がセキュリティに対する意識をしっかり持って開発しないと脆弱なシステムが出来上がる。
0506nobodyさん
2009/12/05(土) 23:26:46ID:???Railsってセキュリティホール多い印象がある
0507nobodyさん
2009/12/05(土) 23:49:22ID:???http://pc12.2ch.net/test/read.cgi/tech/1257139591/181
0508nobodyさん
2009/12/05(土) 23:55:51ID:???ソースとかないの?
0509nobodyさん
2009/12/06(日) 00:32:13ID:???相手をしてスレのレベルが下がっていく様を何度も見てきただろう?
0510nobodyさん
2009/12/06(日) 15:27:04ID:???0511nobodyさん
2009/12/06(日) 17:50:02ID:???■ このスレッドは過去ログ倉庫に格納されています