問題タブ [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.

0 投票する
1 に答える
311 参照

xml - rti/FastXml などは Rails 3 と連携して xml レンダリングを高速化しますか?

Rails 3に実装された REST API があり、yajlバックエンド forを使用していjsonます。現在、約 20 行以上をシリアル化する場合jsonよりもはるかに高速に応答を生成しています。xml

次に考えたのは、すでにforを使用しているlibxmlように、レール 3 にも同様の C ライブラリ ドロップインが必要だということでした。to_xmllibyajlto_json

今日まで、私はrti/FastXmlプロジェクトだけを見つけました: https://github.com/rti/FastXml
これは私が欲しいものだと主張していますが、2010 年初頭から更新されておらず、目に見えるフォークもありません。

FasterXmlがrails 3で動作するかどうかを知っている人はいますか?

さらに重要なことに、Rails 3 を高速化する他の方法を知っている人はいますrender :xml => @search_resultsか?

助けてくれてありがとう。

0 投票する
2 に答える
320 参照

ruby-on-rails - ToyStoreモデルのオブザーバーを作成するにはどうすればよいですか?

与えられたモデル:

ActiveModel::Observerオブザーバーの作成に使用できますか?Railsアプリで使用していないため、ActiveRecordフレームワークを削除します。

次のようなオブザーバーを追加します。

動作しないようです。ActiveRecordフレームワークが削除されているため、アプリケーション構成にオブザーバーを含めることはできません。

0 投票する
5 に答える
18636 参照

ruby-on-rails - Rails検証の順序を制御する

ユーザーがフォームを介して入力した7つの数値属性を持つRailsモデルがあります。

これらの各属性の存在を検証する必要があります。これは明らかに簡単に使用できます。

ただし、いくつかの属性を取得し、それらを使用していくつかの計算を行うカスタムバリデーターも実行する必要があります。これらの計算の結果が特定の範囲内にない場合は、モデルを無効と宣言する必要があります。

それ自体で、これも簡単です

ただし、問題は、メソッド「validate」が常にメソッド「validates」の前に実行されることです。これは、ユーザーが必須フィールドの1つを空白のままにすると、空白の属性を使用して計算を行おうとすると、railsがエラーをスローすることを意味します。

では、最初に必要なすべての属性の存在を確認するにはどうすればよいですか?

0 投票する
1 に答える
300 参照

ruby-on-rails - Rails 3:依存=>:拒否または類似?

多くの「コース」があるモデル「ロケーション」があります

場所を破棄する場合、場所とコースの間に関係がない限り、破棄リクエストを拒否したいと思います。これを行うにはかなり簡潔な方法があると思いますが、何も見つかりません。

すっごく...この種の機能を有効にする最もエレガント/シンプル/簡潔な方法は何ですか?

0 投票する
2 に答える
8535 参照

ruby-on-rails - ActiveModel::SecurePassword未定義のメソッド`password_digest= '

http://bcardarella.com/post/4668842452/exploring-rails-3-1-activemodel-securepasswordに従って、rails 3.1 ActiveModel::SecurePasswordを使用しようとしています。

そして、私は赤い光で終わります...

user.rb

factory.rb

spec_user.rb

そして、私は赤信号を取得します...

そして、それはrake db:migrateの問題だと思い、rails cを調べましたが、明らかにpassword_digestが定義されています。

0 投票する
2 に答える
5278 参照

ruby-on-rails - Rails 3のカスタムフォーマットの検証エラー?

このモデルでは:

かなり不自然な例として。エラーは次のようになります。

自分でフォーマットを提供するにはどうすればよいですか?

私はのソースコードを見て、ActiveModel::Errors#full_messagesこれを行います:

:defaultオプションのフォーマット文字列に注目してください。だから私は試しました:

しかし、エラーメッセージは実際には次のように表示されます。

そこで、補間文字列を含めてみたので、 Rails がデフォルトで使用するバージョン%{message}をオーバーライドしました。%{attribute} %{message}これにより例外が発生します。

I18n::SubscriptionsController の MissingInterpolationArgument#create

"%{message}" に補間引数がありません ({:model=>"Subscription", :attribute="Email", :value=""} が指定されました)

それでも、補間文字列を使用すると、%{attribute}エラーは発生せず、人間化された属性名が2回吐き出されます。

誰でもこれについて経験がありますか?いつでも最初に属性名を付けることができますが、他の文字列が必要になることがよくあります (マーケティング担当者は常に物事をより複雑にします!)。

0 投票する
1 に答える
210 参照

ruby-on-rails - new を呼び出した後に ActiveModel を破棄する

ここで説明されている resource_controller の原則に従うコントローラーを使用しています。

ご覧のとおり、(新規、作成など) すべてのプリロード データを完全に制御することはできません。つまり、新しいエンティティを作成する場合は@user、次のコードが既に呼び出されているとし@user = User.newます。

いくつかの検証を含めることができる唯一の方法は、コールバックを使用することですが、コールバックが新しいメソッドをキャンセルすることを決定すると、常にハッシュ フリーズ エラーが発生します。というか、なんとも言えない @user = User.new @user.destroy

私が思いついた唯一のハックは @user = User.new @user.save @user.destroy

データベースに保存する必要のない、より良い方法を知っている人はいますか? ところで、アクティブなレコードとアクティブなモデルの違いは何ですか?

0 投票する
1 に答える
504 参照

ruby-on-rails-3 - Rails3ActiveModelでのカスタム検証でエラーが発生する

Date Validator Gemを使おうとしていますが、エラーが発生しました。モデルがActive Recordでないかどうかはわかりません(ActiveModelでは検証が少しファンキーだと言われています) ActiveRecordにない場合)。

Ruby1.9.2とRails3.0.7を使用しています。以下にクラスとエラーの両方を添付しました。

助けてくれてありがとう!

クラス

Railsコンソールからのエラー

0 投票する
1 に答える
526 参照

ruby-on-rails - モデル属性にアクセスするための動的スコープ

私は現在、Rails 3 に組み込まれている大量割り当てセキュリティを使用して、モデルについてどのレベルのユーザーが更新できるかを調べています。たとえば、このコードを使用すると、ユーザー レベルに基づいて属性を保護できます。

検索を行うときにどの属性が表示されるかについて、これと同じアイデアを使用できるようにしたいと考えています。たとえば、私は言うことができるようにしたいです

そして信用格付けを取り戻す。これを行うことと比較してください

credit_rating を除くすべての属性を取得する

これはレールがサポートしているものですか?

0 投票する
1 に答える
1823 参照

ruby-on-rails - ActiveRecord has_attributeと同等のActiveModel?

dbではなくサードパーティのAPIに接続しているため、ActiveModelを使用しています。ハッシュを渡してモデルの属性に変換できるように、独自のイニシャライザーを作成しました。これは、アプリケーションの一部のフォームをサポートするためです。

問題は、APIからのデータ取得を処理するために同じモデルを使用したいということですが、これには私が本当に気にしない他のデータがたくさんあります。そのため、APIから返されたハッシュを反復処理し、属性がモデルに存在するかどうかを確認し、存在しない場合は無視します。これにより、フォームの投稿とAPIから返されるデータの両方に対して一貫したモデルを作成できるようになります。何かのようなもの:

ActiveModel APIのドキュメントを調べましたが、同等のものはないようです。これは、私がこれを別の方法で行うべきであるかのように私を感じさせています。

これはこれを行うための正しい(レール)方法ですか?データがさまざまなソースから取得されている場合、一貫したモデル属性を確保するにはどうすればよいですか?