【Ruby】Ruby on Rail ..
[2ch|▼Menu]
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
Wikipedia項目リンク

ディスラプティブ技術 - Wikipedia
Wikipedia項目リンク

スタートアップの始め方
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アプリケーション開発のT部を読んで
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するようにしかけてあるのでバックアップ自体は大丈夫なのですが・・・

720:nobodyさん
10/01/21 19:22:34
>>718
rake routesしてルーティングを確かめるんだ!!

721:707
10/01/21 22:01:06
>>716
>jsばっかり=フロントエンドがAJAX(JavaScript)、バックエンド処理がRails

そんな感じでした。
フロントエンドで、SproutCore(始めて知ったのですが)を使用してました。
サーバーがRailsで、作りとしては、
最初にガサっとサーバーからデータを取ってきて、
フロントエンドで加工して使いまわして、
必要なときだけサーバーとデータをやり取りする感じでした。

>(それでもmodelsがjsばっかりはない気が?)
クライアント側を見ていました。
SproutCoreの構成がRailsによく似てたので。。。
サーバー側では、ちゃんとrbファイルがありました。

また、ブラウザでソースみたら1万行近く云々と言っていたのは
どうも、SproutCoreはビルドできるらしく、1つに固められた
rhtmlファイルのソースを閲覧していたみたいです。

今、試しに元のソースをビルドしようとしたら、文法エラー
undefined local variable or method 'output'
でビルドに失敗したので、このソースは本当にビルドできるのか
先方に確認中です。

まさかとは思いますが、Windowsではビルドできない(Ruby1.8.6.111)
なんてことはないですよね。。。

また何か進展がありましたら、報告させて頂こうと思ってます。
ありがとうございました。

722:nobodyさん
10/01/22 01:43:39
>>715
いまのところ rails 標準にはないので、URLリンク(github.com) のようなのを使うしか。
before_renderで検索するとこれの他にもいくつか実装が見つかる。

>>718
map.resources :items, :collection => [:hoge]
などと書けば良いかと。
詳しくはこの辺で URLリンク(d.hatena.ne.jp)

723:nobodyさん
10/01/22 01:57:31
>>720
なるほど
showに関するmapが先に呼び込まれていて、そちらが優先されていることがわかりました
自作アクションに関してconnectを使い、これをshowよりも先に記述するとうまくいきました
ありがとうございました

724:nobodyさん
10/01/22 02:05:07
>>722
配列でアクションを指定するのですね
以前は以下のように指定していたのですが、これが原因だったみたいです
map.resources :items, :collection => {:hoge => :get}
これを先程のように配列指定にしたらすんなり解決しました
ありがとうございます

725:nobodyさん
10/01/23 05:44:49
>>721
> まさかとは思いますが、Windowsではビルドできない(Ruby1.8.6.111)

そういうことって普通にあるよ。Railsプロジェクトならなおさらじゃないかな。
Rails開発はWindows環境はマイナー環境だと思うのでちゅうい
そういうときは、coLinuxとかVMWare使う
あとはRuby 1.8.7に上げてみるとか。

726:704
10/01/23 05:49:49
>>715
ありがとうございます。

実はあの後、layouts/appliacation.html.erbの先頭に @hoge = hogehoge のように書くと
他のyieldするerbからは参照出きなくて困っておりました。

before_renderでgithub等あさってみます。すでにあるということは需要はある要望なんですねw

>>717
after_filterだと変数参照出きませんでした。レンダリング後によばれるのかな?うーんん。

727:nobodyさん
10/01/23 09:43:12
after_filterは、ページ全体をgzip圧縮するとか、携帯向けにShift_JIS+半角仮名
にするとかだねー。


728:nobodyさん
10/01/23 17:17:27
特定ページのログを出力しない方法ってないのかな?

ファイル管理のコントローラだけ、ページ表示するたびにいっぱいログが出るので、
ログを出さないようにしたいんだけど、情報無いのよね。。。
他のページはデフォルトのログ出力のままがいい。

コントローラでconfigのlogレベルをいじろうと思ったんだけど、
configなんてのは知らないって怒られちゃった。

動的にconfigいじるのは無理なのかな。
loggerのレベルはinfoでやってます。

あとは、ログレベルをwarnにして、必要なログを手で入れてくかだな。。。

729:nobodyさん
10/01/23 17:46:50
Rails.logger.level = Rails.logger.class.const_get(:FATAL)

3とか4とかベタに書いてもいいけど。



730:728
10/01/23 18:27:59
>>729
ありがとうございます。
configの動的変更できました。

ただ、途中までのログが出てしまいました。
ファイル管理のコントローラに以下追記。
before_filter :set_log_rebel_warn

Processing FilesController#show (for 127.0.0.1 at 2010-01-23 18:18:40) [GET]
・・・

このログを出してるところの前でクリアするか、
出そうとしてるログを消すようにしたらいけるかな。(出来るのか?)
もうチョイ調べてやってみます。

助かりましたー!!

731:nobodyさん
10/01/23 19:55:54
ActionController::Base#log_processing
ActionController::Base#log_processing_for_request_id
ActionController::Base#log_processing_for_parameters
あたりをFilesControllerでオーバーライドしてみるとか。



732:nobodyさん
10/01/23 20:02:09
>>707
707に同情するよ。Rails以上にSproutCoreでUIを書くのが大変だと思う。
多分テスト無いよね?なかったらそれこそ地獄だよ。

733:nobodyさん
10/01/23 20:43:41
<%= link_to 'show', :action => 'show', :id => user %>
<%= link_to 'destroy', :action => 'destroy', :id => user %>

destroy クリックしたら show のページに飛ばされる
画面上の URL が両方 /usr/id になっとるしわけ分からん/(^o^)\

734:nobodyさん
10/01/23 20:49:09
:method 指定したらできたよー

<%= link_to 'destroy', { :action => 'destroy', :id => user }, :method => 'delete' %>


735:nobodyさん
10/01/23 21:11:18
ブラウザがDELETEやPUTにまともに対応する日は来るのだろうか。


736:728
10/01/24 09:31:59
>>731
ActionController::Base#log_processing
をオーバライドでいけました。
ありがとうございます。助かりました。
いやしかし、rorはいいですなー。楽だー!!

737:nobodyさん
10/01/24 14:35:45
django も忘れないで~

738:nobodyさん
10/01/24 14:59:53
ど・・・Django

739:707
10/01/24 15:24:37
>>725
ご指摘ありがとうございます。
sroutcoreのバージョンを0.9.11に戻したらビルドできました。
が、ビルド後出来上がったrhtml,jsファイルが本番と別物の欠陥品でした。
ビルド環境が腐ってるのか、ソースが腐ってるのかわからない状態です。

作成者にVMWareで環境(Macらしいです)もらうことも考えてますが、
PHPでその部分だけ一から作り直すことになるかもしれないです。
もともと社内で使う生産管理システムで、あまりリッチなUIは必要なく
遅い、ブラウザが落ちる等評判もよくないみたいなので。。。

>>732
>707に同情するよ。Rails以上にSproutCoreでUIを書くのが大変だと思う。
ですね。
最初何が何やらわからなかったです。
ただ、大体当たりはついてて修正プログラムも作成はしてあります。
環境が構築できてないので確認は全く出来てませんけど。。。

>多分テスト無いよね?なかったらそれこそ地獄だよ。
テストはあるにはありますが、ユニットテストというよりは、
開発者が色々試した結果を置いてあるだけで、
後でソースを修正する人のためのではないかと。。。

ただ、ブラウザをプラットフォームにして、システム構築する手法に
触れたのは良かったです。
AJAXは、”サーバーとデータやり取りしても画面遷移しない技術”
程度の認識だったので新鮮でした。
将来主流になってくるかもしれないですね。

740:nobodyさん
10/01/24 17:36:00
RoR で↓これは使えますか?
URLリンク(www.smartclient.com)


741:nobodyさん
10/01/24 17:42:49
>>739
10年後くらいやね

742:nobodyさん
10/01/24 22:01:02
10年って、10年前がどんな状態だったか考えてのことか?

743:nobodyさん
10/01/25 13:29:59
>>739
すごいなぁ、社内向けのシステムでSproutCore使うとか、
作り手のオナニーか、見積金額上積みのためとしか思えん。
フルスタックのUIフレームワークなら、まだしもdojoの方がメジャーだと思うし。

それに社内のブラウザが全部ChromeかSafariでも無い限り、
まずパフォーマンスに問題が出るとおもう。

Ajaxというか、正しくはJavascriptUIだと思うんだけど、
そういうのは技術的にもう普通だと思う。
GMailやGoogleReaderは多くの人が使ってるだろうし、
GoogleWaveもぜんぶJavascriptでできてる。
ただ、どうしてもコストがかかるので、
低予算の案件が多いWeb制作業界では浸透しないんだと思う。


PHPで一から作り直すくらいなら、Railsだけで作り直してみたらどうでしょうか。
Viewの作成と、Controllerの手直しだけで動くようになる気がします。

744:nobodyさん
10/01/25 13:50:05
画面遷移ない方が低コストに出来ると思うけどなぁ

745:nobodyさん
10/01/25 14:33:18
>>700
>>701
>>703
>>706
レスありがとうございました。
Head Firstシリーズで始めようと思います。


746:nobodyさん
10/01/25 16:13:21
>>744
もしそうなら是非やり方を教えて欲しい。

デスクトップアプリみたいにFSMでGUIを作ろうとするとどうしてもテストが破綻する。
かといってテスト無しでGUIを作り込むと、あっという間にバグの温床になるし。

現状どうやってるのか、参考になるサイト・書籍などもあればお願いします。

747:nobodyさん
10/01/25 17:15:57
その辺が整備されて実用になるのが10年後っていう意味かな

748:nobodyさん
10/01/25 19:00:20
Dojoもそうだし、Extとか使うと、どうしてもJavascriptUI(というのか?)をメインにしないと、
Javascriptファイルの読み込み時間が長くて使えたもんじゃなかった。
だけど、Extメインにすると、Javascript側の記述がもりもりになって、
サーバ側のフレームワークがなんであってもほぼ関係なくなる、と思う。
Javaだろうが、Rubyだろうが、PHPだろうが。
Javascriptの技術(というか、使ってるJavascriptのライブラリの把握度)の方が重要になってくる。
俺はJavascriptってかなり難しい言語だと思ってて、人にはおすすめ出来ないので、
JavascriptUIは使わないようにしてる。
サーバ側の言語と、Javascript両方ともに熟知して貰わないといけないから。


749:nobodyさん
10/01/25 19:53:41 zfSMIsHp

How to easily use Rails 3 now ? tomafro.net

URLリンク(tomafro.net)

750:nobodyさん
10/01/26 06:56:48 ATL7yxma
>>703 とか >>706 も書いてたけど、最近出た Head First Rails って本が超読みやすくてわかりやすくてマジ感動した。
初心者は2ちゃんとか見てる暇あったらとりあえず全員これ買って読むがよいと思うんだ。


751:707
10/01/26 10:01:38
続報です。
製作者が元の環境を消してて環境再現ができない。
作り直しは受注元にダメと言われる、と完全にオワタ\(^o^)/
と思ってましたが、どうにかこうにかビルドできる環境を構築できました。
gemとsproutcoreのバージョンを変え、Javaインストールしてetc...

何とかなりそうです。
皆さん。色々とありがとうございました。

>>743
>作り手のオナニーか、見積金額上積みのためとしか思えん。
そうだと思います。金額でも揉めたみたいです。。。

>ただ、どうしてもコストがかかるので、
>低予算の案件が多いWeb制作業界では浸透しないんだと思う。
その点は同意ですが、JavascriptUIの使用者の本命は、
Web製作業界ではなくアプリ製作者だと思います。
ブラウザが今よりも安定・高速・多機能になり、クラウドが一般にも
普及したら、ブラウザ上でゲーム、アプリを作成するのが
主流になるんじゃないかなと。
その方が、ユーザーの負担が減り自由度があがりますし。。。

将来的にはアプリの起動は、OSからブラウザに移行する気がします。

752:nobodyさん
10/01/26 12:54:27
>>707 は6,7年くらい前からタイムスリップしてきたのかと小一時間w

753:nobodyさん
10/01/26 14:34:11
懲役7年

754:nobodyさん
10/01/27 01:12:32
rails(linux)でmssql使いたいんだけど

UnixODBC
FreeTDS
activerecord-odbc-adapter
Ruby ODBC

入れりゃいいの?


あとgemで見つけた
activerecord-sqlserver-adapter って何?

755:nobodyさん
10/01/27 01:43:58
そんな口の利き方のやつには絶対に教えない

756:nobodyさん
10/01/27 08:41:54
ブラウザが高機能になって安定高速に成った歴史なんて無いしな。
シンプルイズベストで、余計な機能そぎ落としたほうが高速安定すると思うよ。
もうJSとHTMLの拡張辞めればいいw みんなでHTML1.0に戻ろうw

ゲーム、アプリは普通にjavaで組むのが、グーグル携帯の先に有ると思うよ。
googleクラスのハカーでもchromeブラウザ上で全て実行させるなんて言い出してないし。

犬上で動くodbc-mssql driverが無いと思うw
jruby経由でjdbcでごにょごにょでもすれば? mssql捨てるのが一番だが。

757:nobodyさん
10/01/27 09:59:14
ここでいいのかどうかわからないのですが。

linodeでRailsを動かしている方いらっしゃいませんか。
どのプランで、どういう構成で、どのくらいパフォーマンスが出ているか
分かる範囲で教えていただけると助かります。

よろしくお願いします。

758:nobodyさん
10/01/27 11:42:12
>googleクラスのハカーでもchromeブラウザ上で全て実行させるなんて言い出してないし。

Chrome OS

759:nobodyさん
10/01/27 12:57:30 vbYrOD4B
URLリンク(intertwingly.net)

760:nobodyさん
10/01/27 21:35:32
html.erbでコメントを入れる場合、
<!-- コメント -->
<% # コメント %>
どっちでも一応コメントになりますが、どっちの方が正しいやり方でしょうか?

761:nobodyさん
10/01/27 21:52:40
そもそも<!-- -->で囲んでも、ERBの視点ではコメントではない。
ERBはHTML以外の中にも書けることを思い出そう。

<!-- <% RUBY %> --> と書くと RUBY はRubyコードとして評価される
ので、<%# %> にしたほうがよいと思う。

たとえば、
<!-- <% 1 + %> --> → Rubyコードが文法エラーになる。


762:nobodyさん
10/01/27 21:55:07
あ、↑Rubyコードをコメント化する場合の話しかしてないや。

出力HTMLソースの中にコメントとして現れて欲しい部分は<!-- -->の中に。
Ruby評価中に解釈したくないRubyコード片は <%# %> の中で。


763:760
10/01/27 22:03:08
ありがとうございます。
なるほど…どのレベルでコメントになるかっていう違いあるんですね。そこまで頭が回ってなかった。
基本的には<%# %>でほとんど済みそうですね。
HTMLに残さなきゃいけないコメント、、、そんな場面はあり得るのかな?

764:707
10/01/28 01:50:38
>>752
古いっすか?私の考えw
まあ、Webを何年もやってきた同僚の意見は違うし、
私の見当違いである可能性は高いですね。

でもそうなると、ブラウザ上でシステム構築するのは
主流にはならない気がします。
ユーザーが望んでいるのは、付加価値よりも
安く・簡単・便利に使えることだと思うので。

ちょうどWEBメールが普及したように、
WEB画面がリッチになることには金出さなくても
安く簡単にダウンロード出来て、設定する必要もなく
どのパソコンでも動くアプリなら性能落ちても金出すでしょう。

でも本当に難しいでしょうね。そんなブラウザ作るのは。。。

>>756
>ゲーム、アプリは普通にjavaで組むのが、グーグル携帯の先に有ると思うよ。
そうなるでしょうね。
実際、携帯でアプリ作成するのが増えてきてません?

でも、スペックがPCに比較して落ちるのと、
結局、これまでのPC同様、機種依存が出てくるので
個人的にはブラウザに頑張ってもらいたいのですが。。。

765:707
10/01/28 01:55:02
スレ違いの話題を長々とすいません。
もう止めときます。

ちなみに修正まだやっとります。
もうこのプログラムやだw

766:nobodyさん
10/01/28 02:06:38
HTML4.0以前、どれだけ苦労したか知らないバカがいるのか

767:nobodyさん
10/01/28 02:28:56
>>707が結局何を言いたいのかさっぱり分からん

768:nobodyさん
10/01/28 03:30:24
>・ ブラウザでソースをみたら、ログイン画面なのに1万行近くソースがある。

わろすw

ajaxもどきでもやってんだろうな
jQueryのソース全部貼り付けたとかじゃないかw

769:nobodyさん
10/01/28 15:24:22
>>768
おまえ>>707以降のレスを全く見てないだろ
ほかの影響を考えないで脊髄反射でプログラムを書き換えるタイプだな

770:nobodyさん
10/01/29 00:30:31 SeyjXxxZ

URLリンク(www.flickr.com)

771:707
10/01/29 04:03:11
>>769
ははは。まあまあ。

>>767
私が言いたいのは、宇宙開闢137億年の歴史に比べたら
納期を守れないやら、プログラムが読めないなどは
ほんの些細な問題だということです。






もうだめぽ。。。。

772:nobodyさん
10/01/29 16:59:48
ちょっと質問、Rails 2.3.5のプロジェクトなんですが、
国際化は特に考えないで作ってきたんですが、
プラグインが英語で国際化考えてない感じで手を加えたいんですが、
プラグインの国際化ってどうやるものなんでしょう?

i18nとかを使うんでしょうか?
この辺はどこらの資料を見ればいいですか?

今は英語の部分を日本語にべた書き換えでリリースでも別にいいんですが、
後で英語のプラグイン本家にパッチ送って反映してもらいたいときに、メッセージを国際化しときたいんです。

773:nobodyさん
10/01/29 18:57:57
そのプラグインの名前は?

774:nobodyさん
10/01/29 21:24:31
おれもそうオモタ

775:nobodyさん
10/01/29 22:55:58 azIwv80e
URLリンク(guides.rubyonrails.org)

776:nobodyさん
10/01/30 02:07:12
ちゃんとi18n実装してくれるなら助かるが、なんちゃって日本語実装だとみんなが不幸に成るだけ。
そういう中途半端な日本語対応パッチでみんな苦しんで来てるし。

PC用のUTFと携帯用のSJISとメール用のJISぐらいはまともに実装しないとねえ。


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

5389日前に更新/279 KB
担当:undef