タグ付けされた質問 「ruby-on-rails」

Ruby on Railsは、Rubyで記述されたオープンソースのフルスタックWebアプリケーションフレームワークです。これは、人気のあるMVCフレームワークモデルに準拠しており、アプリケーション開発への「構成上の規約」アプローチで知られています。

8
Rails:include対:joins
これは、「これを行う方法がわからない」という質問ではなく、「なぜこのように機能するのか」という質問です。 したがって、使用することがわかっている関連レコードをプルするという福音は:include、結合を取得して余分なクエリの全体を回避するために使用することです。 Post.all(:include => :comments) ただし、ログを見ると、結合は行われていません。 Post Load (3.7ms) SELECT * FROM "posts" Comment Load (0.2ms) SELECT "comments.*" FROM "comments" WHERE ("comments".post_id IN (1,2,3,4)) ORDER BY created_at asc) すべてのコメントを一度にプルするのでショートカットを取っていますが、それはまだ結合ではありません(すべてのドキュメントが言っているようです)。結合を取得できる唯一の方法は、次の:joins代わりに使用することです:include。 Post.all(:joins => :comments) そしてログは示しています: Post Load (6.0ms) SELECT "posts".* FROM "posts" INNER JOIN "comments" ON "posts".id = "comments".post_id 何か不足していますか?私は6ダースの関連付けを持つアプリを持っていて、1つの画面にそれらすべてのデータを表示します。6人の個人ではなく、1つの結合クエリを使用する方がよいようです。パフォーマンスに関しては、個々のクエリよりも結合を行う方が常に良いとは限らないことを知っています(実際に時間を費やすと、上記の2つの個々のクエリが結合よりも高速であるように見えます)。私は読んでいますが:include、宣伝どおりに機能していないことに驚いています。 たぶんRails はパフォーマンスの問題を認識していて、特定の場合を除いて参加しませんか?


5
RubyハッシュオブジェクトをJSONに変換する方法
RubyハッシュオブジェクトをJSONに変換する方法 だから私は以下のこの例を試していますが、うまくいきませんか? RubyDocを見ていましたが、明らかにHashオブジェクトにはto_jsonメソッドがありません。しかし、私はRailsがサポートしactive_record.to_json、またサポートしているブログを読んでいますhash#to_json。ActiveRecordRailsオブジェクトであることは理解できますが、RailsのHashネイティブではなく、純粋なRubyオブジェクトです。したがって、Railsではを実行できますがhash.to_json、純粋なRubyではできません?? car = {:make => "bmw", :year => "2003"} car.to_json

14
Railsでカスタム構成変数を定義する方法
カスタム構成変数をRailsアプリケーションに追加する方法とコントローラーでそれらにアクセスする方法を考えていました。たとえば、構成ファイルでupload_directoryを定義して、development.rbと定義し、自分のいずれかにアクセスできるようにしたいのですがコントローラ。 2番目に、アプリケーションでのアップロードのS3サポートを計画していたが、s3アクセス、秘密鍵を含むyamlファイルを追加したい場合は、Railsアプリでそれを初期化する方法と、定義した値にアクセスする方法その構成ファイルで。

6
モデルがすでに存在するときに「rails generate scaffold」を実行するにはどうすればよいですか?
Railsは初めてなので、現在のプロジェクトは奇妙な状態です。 私が最初に生成したものの1つは「映画」モデルでした。次に、それをより詳細に定義し始め、いくつかのメソッドなどを追加しました。 rails generate scaffoldルーティング、ビュー、コントローラーなどを接続するためにそれを生成する必要があったことに気づきました。 足場を生成しようとしましたが、同じ名前の移行ファイルがすでに存在するというエラーが表示されました。 私の「映画」の足場を作成する最良の方法は何ですか?(レール3を使用)


10
実行時にメソッドが定義されている場所を見つける方法は?
最近、一連のコミットが発生した後、バックエンドプロセスが実行に失敗するという問題がありました。さて、私たちは良い男の子と女の子でありrake test、すべてのチェックイン後に実行しましたが、Railsのライブラリーのロードのいくつかの奇妙さのため、プロダクションモードでMongrelから直接実行したときにのみ発生しました。 私はバグを追跡しましたが、それは新しいRails gemがStringクラスのメソッドを上書きして、実行時のRailsコードでの1つの狭い用途を壊したためです。 とにかく、短い話ですが、実行時にRubyにメソッドが定義されている場所を尋ねる方法はありますか?そのような何かwhereami( :foo )が返ります/path/to/some/file.rb line #45か?この場合、それがStringクラスで定義されていることを私に言っても、ライブラリによってオーバーロードされているため、役に立ちません。 以下のためにgrepをするので、私は、私のプロジェクトのソース命を保証することはできません'def foo'必ずしも私が私が持っている場合はもちろんのこと、必要なものを私に与えることはありません多く def fooのを時々私は私が使用している可能性があり1実行時までわかりません。

9
変更列のRailsマイグレーション
script/generate migration add_fieldname_to_tablename fieldname:datatype新しい列をモデルに追加するための構文があります。 同じ行に、列のデータ型を変更するためのスクリプト/生成がありますか?それとも、SQLを直接バニラマイグレーションに書き込む必要がありますか? 私はから列を変更したいdatetimeのdate。


6
raw対html_safe対h対htmlのエスケープ解除
次の文字列があるとします @x = "<a href='#'>Turn me into a link</a>" 私の見解では、リンクを表示したいのですが。つまり、@ xのすべてをエスケープせずに文字列として表示したくありません。使用の違いは何ですか <%= raw @x %> <%= h @x %> <%= @x.html_safe %> ?
323 ruby-on-rails  erb 

13
通貨/お金を処理する最良の方法は何ですか?
私は非常に基本的なショッピングカートシステムに取り組んでいます。 タイプのitems列を持つテーブルがあります。priceinteger ユーロとセントの両方を含む価格のビューに価格値を表示するのに問題があります。Railsフレームワークで通貨を処理することに関して、私は明白な何かを見逃していますか?

9
「警告応答本文のコンテンツの長さを判別できませんでした」とは何ですか。それを取り除く方法とはどういう意味ですか?
Rails 3.1にアップグレードしてから、次の警告メッセージが開発ログに表示されます。 警告応答本文のコンテンツ長を特定できませんでした。応答またはセットのコンテンツ長を設定するResponse#chunked = true これはどういう意味ですか、どうすれば削除できますか?それって問題ですか?

3
各 'when'ブロックに複数の値を持つCaseステートメント
私が探しているものを説明できる最善の方法は、これまでに試した失敗したコードを示すことです。 case car when ['honda', 'acura'].include?(car) # code when 'toyota' || 'lexus' # code end when考えられる約50の異なるの値によって引き起こされる4つか5つの異なる状況がありますcar。caseブロックでこれを行う方法はありますか、または大規模なifブロックを試す必要がありますか?

7
Rails 4に参照列の移行を追加する
ユーザーは多くのアップロードを持っています。をuploads参照するテーブルに列を追加したいuser。移行はどのように見えるべきですか? これが私が持っているものです。(1):user_id, :intと(2)のどちらを使用するかわかりません:user, :references。(2)が機能するかどうかさえわかりません。これを「レール」の方法で実行しようとしています。 class AddUserToUploads < ActiveRecord::Migration def change add_column :uploads, :user_id, :integer end end Rails 3以外の関連する質問。Rails3の移行:参照列を追加しますか?

8
Ruby on Railsはモデルfield:typeを生成します-field:typeのオプションは何ですか?
新しいモデルを生成し、別のモデルのIDを参照するための構文を忘れようとしています。自分で調べますが、Ruby on Railsのすべてのドキュメントリンクの中で、最終的なソースを見つける方法はわかりません。 $ rails g model Item name:string description:text(そしてここではreference:productまたはreferences:product)。しかし、より良い質問は、この種の愚かさを将来どこで、またはどのようにして簡単に探すことができるかです 注:これらのオプションのいずれかを誤って入力して移行を実行すると、 Ruby on Railsがデータベースを完全にrake db:rollback台無しにしてしまい、そのような台無しに対して無力になるという難しい方法を学びました。私は何かを理解していないと確信していますが、私が理解するまでは...によって返された「詳細な」情報はrails g modelまだ私を引っ掻き続けています...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.