問題タブ [rails-activerecord]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 名前付きスコープを新しい名前付きスコープに結合する方法はありますか?
私は持っている
私は…したい
しかし、私はドライな方法でそれを行うことを好みます. を使用して同じ効果を得ることができます
しかし、それは特に素敵ではありません。
ruby-on-rails - アクティブレコードのレコードを複製する最も簡単な方法は何ですか?
idに加えて、プロセス内の単一のフィールドを変更して、ActiveRecord オブジェクトのコピーを作成したいと考えています。これを達成する最も簡単な方法は何ですか?
新しいレコードを作成し、フィールドごとにデータをコピーして各フィールドを反復処理できることに気付きましたが、これを行うにはもっと簡単な方法があるはずだと思いました。
おそらく次のようなものです:
ruby-on-rails - Rails:ActiveRecordでデフォルト値を設定するにはどうすればよいですか?
ActiveRecordでデフォルト値を設定するにはどうすればよいですか?
見苦しく複雑なコードのチャンクについて説明している Pratik の投稿を見ました: http://m.onkey.org/2007/7/24/how-to-set-default-values-in-your-model
次の例をグーグルで見ました。
と
また、人々が移行にそれを入れているのを見てきましたが、モデルコードで定義されているのを見たいと思います.
ActiveRecord モデルのフィールドのデフォルト値を設定する正規の方法はありますか?
ruby-on-rails - RailsでActiveRecordモデルとそのテーブルの名前を変更するための移行をどのように記述しますか?
私はネーミングが苦手で、Rails アプリのモデルにはもっと適切な名前のセットがあることに気付きました。
モデルとそれに対応するテーブルの名前を変更するために移行を使用する方法はありますか?
ruby-on-rails - Ruby Object#idの警告とActive Record
仕様を実行すると、次のような警告が表示され続けます。
Object#idは非推奨になります。Object#object_idを使用します
問題のコードは、ActiveRecordモデルのIDにアクセスしています(これは、Ruby VMのオブジェクトインスタンスIDではなく、明らかにテーブルの属性です)。
これらの特定の警告をオフにする方法、または何らかの方法でそれらを回避する方法を知っている人はいますか?
ruby-on-rails - ActiveRecord コールバックを実行しないようにするにはどうすればよいですか?
after_save コールバックを持つモデルがいくつかあります。通常はそれで問題ありませんが、開発データを作成するときなど、状況によっては、コールバックを実行せずにモデルを保存したいことがあります。それを行う簡単な方法はありますか?に似た何か...
また
Railsのドキュメントを調べましたが、何も見つかりませんでした。しかし、私の経験では、Rails のドキュメントが必ずしもすべてを説明しているわけではありません。
アップデート
次のようなモデルからコールバックを削除する方法を説明しているブログ投稿を見つけました。
その方法が文書化されている場所を見つけることができませんでしたが、うまくいくようです。
mysql - 失敗した Rails 移行のロールバック
失敗したレール移行をどのようにロールバックしますか? 失敗した移行を元に戻すことができると思いrake db:rollback
ますが、いいえ、以前の移行をロールバックします (失敗した移行から 1 を引いた値)。そしてrake db:migrate:down VERSION=myfailedmigration
、どちらも機能しません。私はこれに数回遭遇しましたが、非常にイライラしています。問題を再現するために作成した簡単なテストを次に示します。
結果:
わかりました、ロールバックしましょう:
は?これは、失敗した移行ではなく、SimpleTest の前の最後の移行でした。(そして、移行の出力にバージョン番号が含まれていればいいのですが。)
それでは、失敗した移行 SimpleTest のダウンを実行してみましょう。
何も起こらず、出力もありません。しかし、とにかく移行を実行したのでしょうか? それでは、SimpleTest 移行の構文エラーを修正して、もう一度実行してみましょう。
いいえ。明らかに、migrate:down は機能しませんでした。失敗しているのではなく、実行していないだけです。
手動でデータベースにアクセスして削除し、テストを実行する以外に、その重複テーブルを取り除く方法はありません。それよりも良い方法があるはずです。
ruby-on-rails - 指定された順序でIDによってActiveRecordオブジェクトを見つけるクリーンな方法
IDの配列を指定してActiveRecordオブジェクトの配列を取得したいと思います。
私は
オブジェクト5、オブジェクト2、オブジェクト3の順に配列を返しますが、代わりに、オブジェクト2、オブジェクト3、オブジェクト5の順に配列を取得します。
ActiveRecord BaseのfindメソッドAPIは、提供された順序でそれを期待するべきではないと述べています(他のドキュメントではこの警告は示されていません)。
1つの潜在的な解決策は、同じ順序のIDの配列による検索で与えられましたか?、しかし、注文オプションはSQLiteでは有効ではないようです。
オブジェクトを自分でソートするためのルビーコードを書くことはできますが(やや単純でスケーリングが不十分であるか、スケーリングがより適切でより複雑です)、より良い方法はありますか?
ruby-on-rails - Ruby クラスの名前を取得するにはどうすればよいですか?
ActiveRecord オブジェクトからクラス名を取得するにはどうすればよいですか?
私は持っている:
私は試した:
User
文字列 (この場合)のクラス名のみが必要です。そのための方法はありますか?
これはかなり基本的なことですが、Rails と Ruby の両方のドキュメントを検索しましたが、見つかりませんでした。
ruby-on-rails - Railsアプリケーションの診断が要素の更新でハングする
小さなホテルが予約を管理するのに役立つRailsアプリケーションを構築しているときに、奇妙なアプリケーションのハングが発生しました。予約の作成は正常に機能します。ゲストの追加、部屋への割り当てなど、問題はありません。しかし、商人が問い合わせを「確認」するために行くとき、Mongrelは私を干すためにたむろします。
予約のインデックスページには、現在の問い合わせと確認済みの予約が一覧表示されます。
予約パーシャル自体では、確認/非確認ロジックを呼び出すビットは、コントローラーアクションへの直接リンクです。
私のルートのPUTにマップされている予約を確認するためのコントローラーのアクションは、次のようになります。
'@reservation.save'がそのトリックです。毎回確実なアプリがハングアップします。
誰かが私がここで何が起こっているのかを理解するのを手伝ってもらえますか?
/アップデート:
コンソールをいじってみると、別の方法で問題を示すことができました。
コンソールもロックされていることに注意してください。保存を中止する必要がありました。Ctrl-Cを使用したコマンド。
なぜ世界で救うのだろう!これをやっていますか?
/アップデート:
とった!!!それは私のモデルにありました。私は関連付けを検証しようとしていて、has_many/belongs_toを逆方向に取得していました。
みんな、ありがとう!