10/06/10 22:04:59
>>591
OK
read_attribute / write_attribute / [] / []=
なども思い出してね。
597:nobodyさん
10/06/11 01:02:10
I18n のActiveRecordのモデル用の翻訳設定で、
例えば created_at カラムの翻訳を一箇所だけで行なうことはできないんでしょうか?
その翻訳がデフォルトになって、一部のモデルだけで
[:ja][:activerecord][:attributes][:xxx][:created_at] まで書いて
別の翻訳をするような使い方ができれば楽なんですが。
598:597
10/06/11 10:22:19
ja.rb に :ja => {:default => {:created_at => "作成日時"} まで書いて、
Foo.human_attribute_name("created_at", :default => I18n.translate("default.created_at"))
とすれば、一箇所だけで書けたもののDRYでない。
human_attribute_name をラップしたら綺麗になるけど、こんなやり方であってんだろうか
599:nobodyさん
10/06/11 11:06:41 X1oTDo32
Rails3のメリットは何ぞや?
600:nobodyさん
10/06/11 16:57:21
app/helpers/application.rb ではアプリケーション全体で使うヘルパーを書きますが、
Rubyのコアクラスを拡張するようなメソッドはどこに書けばいいでしょうか。
たとえば String#start_with? を自前で追加したい場合です。
601:nobodyさん
10/06/11 21:06:52
>>600
実装を lib/ に好きなだけ置いて、config/initializers/ にそれらをrequireするファイルを1つ置いておく。
602:nobodyさん
10/06/12 07:33:00
>>600
プラグインにする方法もあるよ。
vendor/plugins/core_ext
vendor/plugins/core_ext/init.rb
vendor/plugins/core_ext/lib/string.rb
を用意して、こんな感じで定義。
-- init.rb --
Dir.glob(File.dirname(__FILE__) + "/lib/*.rb"){|file|
require file
}
-- lib/string.rb --
class String
start_with?の定義を書く
end
603:nobodyさん
10/06/12 07:35:04 rgrGkZ0y
Does Rails Performance Need an Overhaul? ? Phusion Corporate Blog
URLリンク(blog.phusion.nl)
604:nobodyさん
10/06/12 07:40:50 rgrGkZ0y
Rails Performance Needs an Overhaul - igvita.com
URLリンク(www.igvita.com)
605:nobodyさん
10/06/13 01:25:05 TuHqmC6K
すいません。
動かない系の質問
/test というプロジェクトを作ってpassengerで稼動させようとしているのですが
The requested URL /test/rails/info/properties was not found on this server.
とエラーが出て正常に動きません
Mongrelでは無事に動いたのを確認しているのでpassenger周りの問題だと思うのですが。
同じ問題で困った方などいらっしゃいましたら、お知恵を貸していただけないでしょうか?
環境
CentOS 5.3
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]
rubygem 1.3.7
passenger-2.2.11
rails-2.3.8(もしかしたら2.3.5かも)
Apache + mysqlで稼動
606:nobodyさん
10/06/13 01:26:11 TuHqmC6K
追記ですが、httpd.confの中身です。
<VirtualHost *:80>
DocumentRoot "/var/www/localhost/htdocs"
RailsEnv development
RailsBaseURI /test
<Directory "/var/www/localhost/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/localhost/htdocs/rails">
Options +FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
607:nobodyさん
10/06/13 09:56:35
/path/to/test/public に対して DocumentRoot に test という名前で
シンボリックリンクを作って配置する。 だったっけ?
この場合、RailsBaseURIはいらないような気もしたが嘘かもしれない。
608:nobodyさん
10/06/13 15:22:35
DocumentRootはpublicフォルダを指定しなきゃいけないんじゃなかった?
ちなみにうちのVirtualHost
<VirtualHost *:80>
ServerName yourdomain.net
DocumentRoot /home/yourhome/yourrailsapp/public
RailsMaxPoolSize 5
<Directory "/home/yourhome/yourrailsapp/public">
AllowOverride All
Options -MultiViews FollowSymLinks
</Directory>
</VirtualHost>
609:nobodyさん
10/06/13 16:02:31
Railsの質問というより、apacheの質問ぽい気もする
>>606
の設定だと、
http://ホスト名/rails/public/
で開けるんじゃないのかな。とはいえこれは明らかに変だ
passengerってことは公開用(かそのテスト)だろうし
通常は >>608 みたいにpublic以下をrootとして公開できるように設定する必要があるかと思う
610:nobodyさん
10/06/14 08:59:58 8fwj2FRJ
URLリンク(rubyonrails.org)
611:nobodyさん
10/06/15 18:19:59
2.3.8 に上げたらこの警告がでまくり。overwrite_params はもう使えない??
DEPRECATION WARNING: The :overwrite_params option is deprecated. Specify all the necessary parameters instead
612:nobodyさん
10/06/15 22:12:46
2.3.8ではRails3で使えなくなる命令に対してdeprecatedが出るようになった。
Rails3にそなえて、deprecatedがなくなるように修正しておくといいよって事らしい。
613:nobodyさん
10/06/16 00:09:59
警告が出るようになったバージョンをそのまま使い続けるなら
deprecatedはうるさいだけで気にしなくてもよい。
614:nobodyさん
10/06/16 10:02:06 ufKXCfb0
Rails 3 in a Nutshell
URLリンク(www.amazon.com)
Beginning Rails 3
URLリンク(www.amazon.com)
Rails 3 Way, The (2nd Edition) (Addison-Wesley Professional Ruby Series) [Paperback]
URLリンク(www.amazon.com)
Rails 3 in Action
URLリンク(www.manning.com)
615:nobodyさん
10/06/16 22:47:48
社内でcakePHP使いに迫害されています
cakeには逆立ちしても真似出来ないrailsの良い点を教えてください
616:nobodyさん
10/06/16 23:23:30
PHPを使わなくてもいい
617:nobodyさん
10/06/16 23:36:46
迫害を受け続けた俺の経験からして、
PHP使いは美醜感覚が欠けてるから何をアピールしても無理。
618:nobodyさん
10/06/16 23:37:20
迫害されてるってことは、社内にPHP使いが多いんだろう。
それなら抵抗しても無駄な気がする。
CakePHPも悪くないけど、script/consoleに相当する機能が欲しいよね。
script/consoleでモデルの動作テストが出来るというのは、Railsのかなりの利点だと思う。
それからPHPの言語仕様上、仕方ないんだけどbelongs_toやhas_manyの記述が
Railsに比べて冗長になる、配列の嵐になる点がダメだと思う。
619:nobodyさん
10/06/17 00:52:00
まぁ後発の方が優れてることが多いからなぁ
Cakeに負けてるとは思わないけど、Railsの寿命が長いとも思えない
620:nobodyさん
10/06/17 13:36:57 xXvtdm8B
CakePHPの残念なところ
URLリンク(blog.takeda-soft.jp)
621:nobodyさん
10/06/17 14:27:37
>>620
へー、こんなのあるんだ
Akelos PHP Framework
URLリンク(www.akelos.org)
Railsの移植っぽい感じか
622:nobodyさん
10/06/17 15:50:48
確認画面が入るとなんで急激に面倒なことになるんだろうか
has_many :xxx なら xxx_ids = [1,2,3] で一発更新できるところが、
確認画面を挟むと、そこに行く前に、いきなり更新されてしまうから使えないし、
超便利な accepts_nested_attributes_for も同じ理由で使えなくなるし。
623:nobodyさん
10/06/17 18:15:07
>>622
何が問題になるのか分からないのだが・・・
いきなり更新というのがよく分からない
624:nobodyさん
10/06/17 19:20:58
モデルの命名方法について質問させて下さい。
ファックする担当者権限みたいなモデルを作りたいと思っています。
ようするにファック可能なユーザーを表したいです。
そのためUserInChargeOfFuckモデルというのを考えたのですが、
"UserInChargeOfFuck".tableize をしてみると、
"user_in_charge_of_fucks"になってしまいます。
fucksが複数形になり???となります。
もちろん、Inflectorモジュールで複数形の例外を定義してやればいいのですが、
似たような状況になる度に追加するのはどうなのか?と思ってしまいます。(むしろ面倒くさい)
この場合だとこうですね
ActiveSupport::Inflector.inflections.irregular "user_in_charge_of_fuck", "users_in_charge_of_fuck"
完結な書き方としては FuckerChargedUsers みたいにするのがよいものでしょうか?
625:624
10/06/17 20:17:35
ドキュメントみたら、ActiveSupport::Inflector.inflections.irregularが正規表現通るみたいなので、
ActiveSupport::Inflector.inflections.irregular("user_of_(.+)", 'users_of_\2')
して、モデル名を"ChargedUserOfFuck" のようにしてみたいと思います。
これだと~~user_of_~~には対応できるのでよいかなーと。
irb(main):020:0> "ChargedUserOfFuck".tableize
=> "charged_users_of_fuck"
626:nobodyさん
10/06/18 03:21:42
ゆとりをみた
627:nobodyさん
10/06/18 12:03:45
railsで401とか422とかのHTTPレスポンスエラーをなげるにはどうしたらいいですか。
self.status = 401 とかしないといけないのでしょうか。
raise Http401Error.new() とかできませんか?
628:nobodyさん
10/06/18 22:02:28
render :text => "Error!", :status => 401
でいいんじゃないの?
629:nobodyさん
10/06/18 23:08:24
補足
:status は :not_found みたいにシンボルでも書ける
ボディを空にしたい場合は :nothing => true (:text => '' でもいいような気がするけど)
630:605
10/06/19 11:48:34 bgO7A9jZ
報告遅れましたが、最終的に環境を1から再構築して起動できるようにいたしましたorz
Rubyあ1.8.6と1.8.7、Railsは2.3.5と2.3.8が両方入っていたので
このあたりが原因であったと思っているのですが。それ以上は不明です
みなさま、ご協力ありがとうございました。
631:nobodyさん
10/06/19 15:08:58
いろんなバージョンのRubyやいろんなgemの組み合わせを使い分けたいときは
rvmを使おう
632:nobodyさん
10/06/20 09:00:15 FD2mdesc
>>256
URLリンク(twitter.com)
633:nobodyさん
10/06/20 21:31:04 n+LfeZAh
【サッカー/W杯】中村俊輔「皆安全なプレーばかりしていたから、小技で相手をかわそうと思った」「役割に徹している」★4
172 :名無しさん@恐縮です:2010/06/20(日) 21:19:12 ID:9x6hOs100
マリノスサポーターは氏ねば?
中村俊輔出場試合……1勝8敗3分
中村俊輔欠場試合……6勝2敗2分
(2敗はアウェーバルセロナ、アウェーレアルマドリード)
186 名無しさん@恐縮です 2010/02/17(水) 17:55:53 ID:ilxFUZaW0
>>15
これ見て「負けてるときに途中交代で黒星つけられて可哀想だなー」とも思ったけど
中村が出てる試合って3点しか入ってないんだなw
191 名無しさん@恐縮です[sage] 2010/02/17(水) 18:00:27 ID:Ldmu6m530
>>186
これが一番変な色眼鏡無しに公平に見れるデータだと思うよ
□中村出場時間帯 564分
1得点 10失点
得失点 -9
(1試合に換算すると0.16得点1.6失点)
■中村ベンチ時間帯 1416分
15得点 19失点
得失点 -4
(1試合に換算すると0.95得点1.2失点)
634:nobodyさん
10/06/20 21:53:48 n+LfeZAh
スレリンク(mnewsplus板:172番)
635:nobodyさん
10/06/21 13:48:38
replace_htmlを使用して、別コントローラのアクションの結果を埋め込むやり方をご存じの方教えて下さい。
現状:
2つの要素の置き換えを行いたい。
片方はパラメータ等を使い置き換えられることを確認。
しかしもう片方の要素は「Aコントローラのメソッドindexを実行し、その結果に置き換える」という物を求めているが上手く動作しない。
636:nobodyさん
10/06/21 14:13:55
ajaxを使ったらいけるんじゃないのかな
ajax経由でAコントローラのindex実行してインスタンス変数の中身置き換えて、かつ、再表示みたいな感じで
637:nobodyさん
10/06/21 14:35:23
>>636
すみません、意思が読み取れませんでした…
先にAコントローラのindexを実行と考えた場合:
link_to_remote("置き換え" , {:update => "置き換え先1", :url => url_for(:controller => "A", :action => "index"), :method => :get}
これで実行結果を表示させることは出来ますが、もう1つの要素の置き換えをするやり方がわからず、この方法でも手詰まり状態です。
638:nobodyさん
10/06/21 17:32:16
モデルの属性には存在しない(テーブルのカラムが存在しない)けど、フォームのコントローラとしては
存在するようなデータは、どうやって扱えばいいのでしょうか。
今困ってるのは、色を表す color というカラムがあって、これは #FFFFFF のような値が入るのに、
フォームでは red: 0-255, green: 0-255, blue: 0-255 のように入力するようになっていて、
それでバリデーションの書き方とか、f.text でどう指定すればいいのかとか、わからないので
だれか手がかりでも結構ですので教えてください。
639:nobodyさん
10/06/21 17:54:39
Rails的フレームワークの弊害だろうか
ここまで型を与えてしまうと、少しでも型から外れたことができなくなる
640:nobodyさん
10/06/21 19:32:17
コントローラ⇒ビュー⇒ヘルパー ここのヘルパーでコントローラ名を取得する方法を教えて下さい
641:nobodyさん
10/06/21 20:22:59
>>635
直接呼ぶのも出来なくはないのかも知れんけど筋が悪そう。
別コントローラのアクションを共通モジュールにしたほうが良い気がするけど
>>638
accessor使うなり、独自のフィールド作るなり
>>640
params[:controller]で取れない?
642:nobodyさん
10/06/22 09:13:54
>>641
取れました
ありがとうございました
643:nobodyさん
10/06/22 14:18:27 DFcN5Bvo
共同購入型クーポンサービス、RailsのPaaS「Heroku」上に構築 ? @IT
URLリンク(www.atmarkit.co.jp)
開始2年で年商321億円、グルーポン系サービスの日本版まとめ - はてなこわい><
URLリンク(b.hatena.ne.jp)
644:nobodyさん
10/06/22 15:37:42
<%form_for(@model) do |f|%>
<%=f.text_field :name%>
これでnameのテキストフィールドには、valueとしてmodel.nameがセットされると思います。
この元のnameの値(valueに入る値)をsubmit時の引数として渡したいのですが、やり方がわかりません。
わかる方いましたら教えて下さい、お願いします。
645:nobodyさん
10/06/22 16:34:03
何もしなくても、model[:name]で渡されてると思うけど
646:nobodyさん
10/06/23 02:02:24
usersテーブル:id,name,etc
commentsテーブル:id,user_id,text
responseテーブル:id,commment_id,user_id,text
@comments = Comment.find(:conditions =>{:id => id}, :include => 'responses')
@comments.each do |comment|
@response << comment.response if comment.response
end
render :xml => {:comments => @comment, :response => @response}
commentとresponseを返すwebapiを作りたいと思っています。
その際にcomment、responseしているユーザ名の取得も行いたいのですが
どのようにするのが効率よくできるのでしょうか?
それとも、comment,responseテーブルに予めnameカラムを持たせたほうが良いですか?
647:nobodyさん
10/06/23 03:44:45
> それとも、comment,responseテーブルに予めnameカラムを持たせたほうが良いですか?
そだね。このケースではそれが一番手っ取り早そう。
ただ、user.nameが変わっても反映されないけど、それで問題なければ
648:nobodyさん
10/06/23 12:52:14 5nqbPSdk
rails3の正式リリースってなんでこんなに遅れてんの??
rails開発者界隈でなんかもめごととかあるのかな?
649:nobodyさん
10/06/23 15:47:44 scuHCblD
>>647
処理が煩雑になるようならnameの反映は諦めようと思っています。
ちなみに、現在のテーブル構成で実装する場合、
comment、responseのそれぞれにnameをひもづけて以下のようにクライアントに渡したいのですが
取得したcommentオブジェクトにnameプロパティを動的に追加のようなことができますか?
Commentクラスにnameセッターを作り値を設定してやっても思ったように動作しませんでした。
<comment>
<id>1</id>
<text>こんにちは</text>
<user_id>001</user_id>
<name>名前</name>
</comment>
650:nobodyさん
10/06/23 16:26:25
>>648
1.9.2待ちなんじゃないの?
>>649
セッターだけ?
まぁ、ゲッターつけてもダメかもしれんが
651:nobodyさん
10/06/23 16:49:15
>>649
object.to_xml として to_xml の引数に :methods => [:name] とかすれば
object.name メソッドの結果が並列に入ったり、
:include => {:user => {...}} とかやれば
object.user が入れ子で入ったりもできたはず。
詳しくは to_xml 嫁。
652:nobodyさん
10/06/24 10:01:39
update.attributesを使用すると主キーの更新が出来ない為、executeを使用しています。
しかしexecuteを使用する場合、入力チェックが上手く動かずに悩んでいます。
connection.executeを使用した時に入力チェックする方法があれば教えて下さい。
653:nobodyさん
10/06/24 10:22:19
>>652 主キーが :id のことだとして、 update_attributesで:idを変えられないのは デフォルトでattr_protected(ぐぐれ)に入っているから。 無難なのは、:idだけ、obj[:id] = newid で書き換えること。
654:nobodyさん
10/06/24 10:39:59
>>653
@obj[:id] = params[:newobj][:newid]
@obj.update_attributes(params[:newobj])
のような形でやればいいということですか?
今試行してみましたがid部分だけ更新されませんでした
655:nobodyさん
10/06/24 11:05:13
ああ、保存後だと無理だろうなぁ
別オブジェクトとして保存後に元のオブジェクトを消すしかないんじゃないか?
656:nobodyさん
10/06/24 11:43:08
on update cascadeで参照されているので保存して消すとかは出来ないです
別途id(主キー)を作って既存idを主キーからユニークに変更するしかないんでしょうか?
657:nobodyさん
10/06/24 16:04:10
named_scopeの中身に、別のnamed_scope を記述することは出来ないのでしょうか
named_scope :hoge
named_scope :hogehoge , Hoge.hoge
みたいな感じで
658:nobodyさん
10/06/24 16:34:41
所詮はクラスメソッドなので
named_scope :a, ...
named_scope :b, ...
def self.ab; a.b; end
とは出来る。
659:657
10/06/24 16:46:13
>>658
おお、これで十分!
助かりました!
660:nobodyさん
10/06/24 16:58:24 JCV4W5p0
縦に並んだリスト要素をマウスオーバーした瞬間、
その右隣に、ちょっとした説明が出現するものを作ろうとしています。
バナナ
りんご
スイカ
↓ りんごをマウスオーバー時
バナナ
りんご 赤い
スイカ
ざっというと、こんな感じのものを作りたいと思っているのですが、行き詰っています。
<% @fruites.each do |fruite| %>
<%= fruite.name %> <%= fruite.explain %> #問題はここです
<% end %>
という感じで作りたいと思ってます。
クリックを説明文表示のトリガとするなら、link_to_remoteでいいと思うのですが、
マウスオーバーをトリガとして動かす方法がわからず、困っています。
問題の行を、JavascriptのAjaxUpdaterで直に書いてしまうと、今度はrubyのeachから、
どうやって変更箇所のid名(右隣のid名)をもらえばいいかが分からなくなってしまいます。
できればRubyサイドで解決したいと思いますが、JavaScript直書きの解決法でも構いません。
解決のためのよい方法をご存知の方いましたら、教えて頂けると嬉しいです。
よろしくお願い致します。
661:nobodyさん
10/06/24 20:19:05
>660
それCSSで出来るよ。
662:nobodyさん
10/06/24 20:34:37
> 問題の行を、JavascriptのAjaxUpdaterで直に書いてしまうと、今度はrubyのeachから、
> どうやって変更箇所のid名(右隣のid名)をもらえばいいかが分からなくなってしまいます。
いまいち意味不明なんだけど、行じゃなくてフィールドだけ書き換えるとか、
取得したデータの中にもid埋め込んどくとかすればいいんじゃないの?
そもそもマウスオーバーの度にサーバにアクセスにいくのが重そうだけど。
663:nobodyさん
10/06/25 07:44:40
JavaScript、CSS、ツールチップあたりでググるといいかも