タグ付けされた質問 「activerecord」

Active Recordは、ドメインロジックとストレージアブストラクションを1つのオブジェクトに組み合わせたパターンです。パターンに関する質問にはこのタグを使用し、Rails ORMフレームワークに関する質問には[rails-activerecord]を使用します。

5
RailsでDBのユーザー名、pw、データベース名を取得できますか?
Rails / ActiveRecordの外部で一部のDBを実行するrakeタスクを作成しています。 で定義されている現在の環境のDB接続情報(ホスト、ユーザー名、パスワード、DB名)を取得する方法はありますdatabase.ymlか? 入手したいので、このように接続するために使用できます... con = Mysql.real_connect("host", "user", "pw", "current_db")

8
reverse_ofは何をしますか?どのSQLを生成しますか?
私は頭を動かそうとしていますが、inverse_ofうまくいきません。 生成されたSQLはどのように見えますか? ないinverse_ofで使用する場合のオプションは同じ挙動を示す:has_many、:belongs_toと:has_many_and_belongs_to? これがそのような基本的な質問であれば申し訳ありません。 私はこの例を見ました: class Player < ActiveRecord::Base has_many :cards, :inverse_of => :player end class Card < ActiveRecord::Base belongs_to :player, :inverse_of => :cards end

5
Railsでモデル属性をどのように発見しますか?
クラスファイルで明示的に定義されていないため、すべてのモデルクラスにどの属性/プロパティが存在するかを簡単に確認するのは困難です。 モデルの属性を見つけるために、schema.rbファイルを開いたままにし、必要に応じて、それと、作成しているコードを切り替えます。これは機能しますが、属性を取得するためのスキーマファイルの読み取り、メソッドをチェックするためのモデルクラスファイル、および属性とメソッドを呼び出すために作成する新しいコードを切り替える必要があるため、扱いにくいです。 私の質問は、Railsコードベースを初めて分析するときに、モデル属性をどのようにして発見するのですか?schema.rbファイルを常に開いたままにしていますか、それとも、スキーマファイルとモデルファイルの間を絶えずジャンプしない方法がありますか?

4
NuoDBを使用してRuby On RailsでSQLコマンドを手動で実行する方法
NuoDBのプロシージャにアクセスできるように、SQLコマンドを手動で実行しようとしています。 Ruby on Railsを使用しており、次のコマンドを使用しています。 ActiveRecord::Base.connection.execute("SQL query") 「SQLクエリ」は、任意のSQLコマンドです。 たとえば、「フィードバック」というテーブルがあり、コマンドを実行すると次のようになります。 ActiveRecord::Base.connection.execute("SELECT `feedbacks`.* FROM `feedbacks`") これは、要求されたすべてのデータを私に送信するのではなく、「真の」応答のみを返します。 これはRailsコンソールの出力です: SQL (0.4ms) SELECT `feedbacks`.* FROM `feedbacks` => true これを使用してNuoDBのストアドプロシージャを呼び出したいのですが、プロシージャを呼び出すと、 "true"応答も返されます。 とにかく、SQLコマンドを実行して、「真の」応答を取得する代わりに、要求されたデータを取得できますか?

7
アソシエーションによるbelongs_to
以下の関連付けを前提として、Questiona ChoiceがChoiceモデルから接続されていることを参照する必要があります。を使用belongs_to :question, through: :answerしてこのアクションを実行しようとしています。 class User has_many :questions has_many :choices end class Question belongs_to :user has_many :answers has_one :choice, :through => :answer end class Answer belongs_to :question end class Choice belongs_to :user belongs_to :answer belongs_to :question, :through => :answer validates_uniqueness_of :answer_id, :scope => [ :question_id, :user_id ] end 私は得ています …

6
数、サイズ、長さ…Rubyの選択肢が多すぎる?
私はこれについて決定的な答えを見つけることができないようで、私がこれを「n番目のレベル」まで確実に理解したいと思います:-) a = {"a" => "こんにちは"、 "b" => "世界"} a.count#2 a.size#2 a.length#2 a = [10、20] a.count#2 a.size#2 a.length#2 それでどちらを使うのですか?aに複数の要素があるかどうかを知りたい場合、それは問題ではないようですが、実際の違いを確実に理解したいと思います。これは配列にも当てはまります。同じ結果が得られます。 また、カウント/サイズ/長さはActiveRecordとは異なる意味を持つことに気づきました。今は主に純粋なRuby(1.92)に関心がありますが、ARがもたらす違いを誰かが知りたいのであれば、それも評価されます。 ありがとう!

19
ANDではなくORでスコープクエリをチェーンする方法は?
Rails3、ActiveRecordを使用しています ANDではなくORステートメントを使用してスコープをチェーンするにはどうすればよいのでしょうか。 例えば Person.where(:name => "John").where(:lastname => "Smith") それは通常戻ります: name = 'John' AND lastname = 'Smith' しかし、私は欲しい: `name = 'John' OR lastname = 'Smith'

3
Railsシリアライズを使用してハッシュをデータベースに保存する
Railsアプリで、ハッシュマッピングIDをいくつかの試行に保存しようとしています。この新しい列に対応するためのデータベースへの移行: class AddMultiWrongToUser < ActiveRecord::Migration def self.up add_column :users, :multi_wrong, :string end def self.down remove_column :users, :multi_wrong end end 私のモデルでは: class User < ActiveRecord::Base serialize :multi_wrong, Hash end しかし、私がレールコンソールを使用してこれをテストすると、次のようになります: user = User.create() user.multi_wrong = {"test"=>"123"} user.save 出力は偽です。ここで何が問題になっていますか?

6
Array Rails ActiveRecordのIDを例外なく選択する方法
次のようなIDの配列がある場合 ids = [2,3,5] そして私は演奏します Comment.find(ids) すべてが正常に動作します。しかし、存在しないIDがあると、例外が発生します。これは一般的に、いくつかのフィルターに一致するIDのリストを取得し、次のような場合に発生します current_user.comments.find(ids) 今回は有効なコメントIDを持っている可能性がありますが、これは特定のユーザーに属していないため、見つかりませんでした。例外が発生します。 私は試しましたがfind(:all, ids)、すべてのレコードが返されます。 今私ができる唯一の方法は current_user.comments.select { |c| ids.include?(c.id) } しかし、それは私にとって非常に非効率的なソリューションのようです。 存在しないレコードで例外を発生させずに配列でIDを選択するより良い方法はありますか?

14
Rails 3:ランダムなレコードを取得する
したがって、Rails 2でランダムなレコードを見つける例をいくつか見つけました。推奨される方法は次のようです。 Thing.find :first, :offset => rand(Thing.count) 初心者なので、Rails 3の新しい検索構文を使用してこれをどのように構築できるかわかりません。 では、ランダムなレコードを見つけるための「Rails 3 Way」とは何でしょうか。

3
Railsのテーブルにどのインデックスを追加するか
Railsデータベースについて質問があります。 「xxx_id」のようなすべての外部キーに「インデックス」を追加する必要がありますか? 自動的に作成された「id」列に「index」を追加する必要がありますか? 自動的に作成される「id」列に「index(unique)」を追加する必要がありますか? 一度に2つの外部キーにインデックスを追加すると(add_index (:users, [:category, :state_id])、どうなりますか?これは、各キーにインデックスを追加するのとどう違うのですか? class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.string :name t.integer :category_id t.integer :state_id t.string :email t.boolean :activated t.timestamps end # Do I need this? Is it meaningless to add the index to the primary key? # If so, do …


2
Ruby on Rails。:belongs to関係でActive Record .buildメソッドを使用するにはどうすればよいですか?
Railsで.buildメソッドに関するドキュメントを見つけることができませんでした(現在2.0.2を使用しています)。 実験により、has_manyいずれかのレコードが保存される前に、buildメソッドを使用して関係にレコードを追加できるようです。 例えば: class Dog < ActiveRecord::Base has_many :tags belongs_to :person end class Person < ActiveRecord::Base has_many :dogs end # rails c d = Dog.new d.tags.build(:number => "123456") d.save # => true これにより、外部キーを持つ犬とタグの両方が適切に保存されます。これはbelongs_to関係で機能していないようです。 d = Dog.new d.person.build # => nil object on nil.build 私も試しました d = Dog.new d.person = Person.new …

6
Rails 4 LIKEクエリ-ActiveRecordは引用符を追加します
私はそのようなクエリを実行しようとしています def self.search(search, page = 1 ) paginate :per_page => 5, :page => page, :conditions => ["name LIKE '%?%' OR postal_code like '%?%'", search, search], order => 'name' end しかし、それが実行されると、何かが引用符を追加し、SQLステートメントが次のようになります SELECT COUNT(*) FROM "schools" WHERE (name LIKE '%'havard'%' OR postal_code like '%'havard'%')): だから私の問題を見ることができます。私はRails 4とPostgres 9を使用していますが、どちらも使用したことがないので、それがactiverecordなのか、postgresなのか不明です。 これをどのように設定すれば'%my_search%'、最後のクエリでいいのですか?


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