問題タブ [activemodel]
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.
xml - XML 列を使用して Rails 3 モデルを取得する
データベース (IBM DB2) に XML 列を含む Rails 3 モデルがあります。このモデルを XML 形式で取得しようとすると@model.to_xml
、次のような XML 列がエスケープされます。
私が達成しようとしているのは次のとおりです。
XML列のエスケープを解除してメソッドを書き直すなど、これまでにいくつかのことを試みましたが、うまくいきto_xml
ませんでした(XML列を効率的に解析する方法がわかりません)。
何か案は?
ruby-on-rails-3 - Rails 3、RSpec 2.5: 名前付きスコープで should_receive または stub_chain を使用する
Rails 3.0.4 と RSpec 2.5 を使用しています。私のコントローラーでは、名前付きスコープを多用しています。たとえば、
私のテストでは、文言ではなく、そのようなクエリの結果をモックできるようにしたいと考えています。次のようなことをしても意味がないと思います
名前付きスコープの並べ替えを決定した時点で、このテストは失敗するためです。
Rails 2.3 と RSpec 1.x では、これはうまくいきました。
上記の呼び出しはキャッチされ、正しく処理されます。しかし、Rails 3 では、何らかの理由でこれが機能しなくなりました。
なんで?ネストされたスコープの結果に期待値またはスタブを設定するにはどうすればよいですか? Rails 3 の ActiveModel 内のすべてが名前付きスコープであるため (ARel のおかげで)、これは何らかの方法で可能でなければならず、そうしないとテストが非常に脆弱になります。
ありがとう!
更新: GitHub の問題レポートも参照してください。
ruby - Ruby onRailsMustacheを使用してActiveModelからHTMLでプレビューする方法
Mustacheテンプレートを使用しており、RoR Webアプリケーションで、テンプレートとデータベースに保存したデータを組み合わせたプレビュービューを作成したいのですが、インターネットで検索した後( SO!)、アクティブなモデルを含む例は見つかりませんでした。
ActiveModelレコードをMustacheにパイプして、テンプレートとマージするにはどうすればよいですか?
セットアップ:
スキーマ
モデルについて特別なことは何もありません。どちらもActiveRecord::Baseからサブクラス化されています
コントローラー
景色
ルート
データ
テンプレート(例としてhtmlを簡略化しました)
結果
期待
私はこれに対する簡単な答えがあることを望んでいます、そして私はそれをただ逃しています。ありがとう。
ruby-on-rails - ActiveModel属性
ActiveRecord属性メソッドの機能を取得するにはどうすればよいですか?私はこのクラスを持っています:
PurchaseFormオブジェクトのすべての名前と値を一覧表示する属性メソッドを作成するにはどうすればよいですか?
ruby-on-rails - Rails 3:モデルの共有メソッドをどこに保存しますか?
Rails3プロジェクトの複数のモデルからアクセスできるようにしたいメソッド「random_password」があります。どこに保存するのか、どのようにアクセスを提供するのか、という規則が何なのか疑問に思っています。助けていただければ幸いです。
ruby-on-rails - 複数のカテゴリの合計を使用して ActiveRecord クエリを最適化する方法
モデル:
- ユーザー has_many カテゴリ、has_many エントリ
- カテゴリ has_many エントリ
- エントリーはカテゴリとユーザーの両方に属します。
エントリに名前と金額があると仮定しましょう。特定のユーザーの特定の月を表示する必要があるビューがあり (ここでは created_at を使用します)、その特定の月のすべてのエントリをカテゴリ別にグループ化 (空のカテゴリは表示されません) し、合計を含むテーブルを表示したい場合カテゴリ内のエントリの数。
私の質問は次のとおりです。データベースにクエリを実行する (そしてキャッシュを最大限に活用する) 最も効率的な方法は何ですか? このビューは非常に頻繁にレンダリングされ、ユーザーが新しいエントリを作成するたびに、自然に 1 つのカテゴリの合計が変更されますが、他のカテゴリの合計は変更されません。
ruby-on-rails-3 - Rails の ActiveRecord オブジェクトの非永続属性のトラック ダーティ
ActiveRecord から継承するオブジェクトがありますが、次のように DB に永続化されていない属性があります。
ActiveModel Dirty が提供するように、「bar_changed?」などのメソッドを使用して、「bar」への変更を追跡できるようにしたいと考えています。問題は、 docsで説明されているように、このオブジェクトに Dirty を実装しようとすると、 ActiveRecord と ActiveModel の両方が定義されているdefine_attribute_methods
ためエラーが発生しますが、パラメーターの数が異なるため、試行時にエラーが発生することですを呼び出すdefine_attribute_methods [:bar]
。
define_attribute_methods
を含める前にエイリアシングを試みActiveModel::Dirty
ましたが、うまくいきませんでした: メソッドが定義されていないというエラーが発生します。
これに対処する方法についてのアイデアはありますか?もちろん、必要なメソッドを手動で記述することもできますが、Rails モジュールを使用して、ActiveModel の機能を ActiveRecord で処理されない属性に拡張することで、それが可能になるかどうか疑問に思っていました。
ruby-on-rails - Rails 3 フォーム エラー:「undefined method `quoted_table_name'」
ネストされた属性のセットを持つ Rails 3 フォーム (実際には simple_form) があります。
問題は、:credit_card 属性が CreditCard クラスに属していることです。これは、データベースにクレジット カード データを保存していないため、モデルではありません。/app/models/credit_card.rb でそのクラスを次のように定義しています (この RailsCast ごと):
user.rb には、次のようなものがあります。
ページにアクセスすると、次のエラーが表示されます。
そのエラーをグーグルで検索しても、提案は得られませんでした。Rails Console から CreditCard オブジェクトを作成できますが、何らかの理由で Rails フォーム ジェネレーターがクラスを認識していません。
私はすでに simple_form_for を form_for (および関連する変更) に交換しようとしたので、それは simple_form の問題ではないと思います。
ruby-on-rails-3 - Rails:親のコールバックの前に関連オブジェクトのコールバックを実行するにはどうすればよいですか?
私はInvoice
モデルを持っていhas_many :line_items
ます。
どちらのモデルにもbefore_validation
コールバックがあります。請求書のコールバックでは、品目のコールバックが最初に実行されている必要があります。ただし、デフォルトでは請求書のコールバックが実行され、次に各明細のコールバックが実行されます。
最初に品目が検証され、次に請求書が検証されるようにする良い方法はありますか?
現時点では、次のようなものをいじっています。
これを処理するより良い方法はありますか?
ruby-on-rails - Rails 3: フォームの検証エラーを表示する (ActiveRecord モデルを保存しない)
これが本当に一般的でばかげた質問である場合はお詫びします。ドキュメントを何度も読んだことを誓いますが、すべてが ActiveRecord に集中しているように見え、モデルデータの作成または編集以外のことを行うフォームの道から迷い込んでしまいました。
いくつかの統計の抽出と表示を制御するための入力を含むフォームを例にとります。このフォームのユーザー入力を検証するために、Rails は何を提供してくれますsave
か? 次のようなもの:
:email
メールアドレスである必要があります:num_products
正の整数でなければなりません:gender
「M」または「F」のいずれかでなければなりません:temperature
-10 から 120 の間でなければなりません
などなど (ほとんどの Web フレームワークに標準装備されているもの)...
この任意の検証を実行するための Rails と、エラーのリストを表示するためのビュー ヘルパーがありますか、それともすべてが ActiveRecord と結合されていますか?
ドキュメントでこれを見落としていたら申し訳ありませんが、少なくとも mt 疲れた目がわかる限り、これとこれは実際にはカバーしていません。
頭を掻く
ロブの答えのおかげで、これが私が思いついたものです。ユーティリティ クラス (適切な名前のValidator
) を作成しました。このクラスは、必要なすべてのもののためにコントローラーに埋め込まれています。
たとえば、コントローラーで、小さなインラインクラスを定義するだけです。
.rb
ロジックがよりコントローラー指向の私見である場合、検証ルールのすべてのセットを独自に固執することは少し不必要に感じます。これをもっと簡潔に書く方法があるかもしれませんが、私は Ruby と Rails にかなり慣れていません。