問題タブ [virtual-attribute]

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 に答える
467 参照

ruby - @model.map(&:attributes) と仮想属性

@model.map(&:attributes) を使用して、@model を json としてレンダリングするときに仮想属性が表示されるようにするにはどうすればよいですか

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

ruby-on-rails - Rails モデルでの仮想属性の設定と取得

私は以下にアプローチするためのRails-yの方法を探しています:

Eventモデルの2 つのdatetime属性:

フォームでそれらにアクセスするために 3 つのフィールドを使用したいと思います。

私が抱えている問題は、実際の属性start_at仮想属性を「同期」状態に保ち、フォームを介して、および/または&を介して直接モデルを更新できるようにする方法end_atです。

どちらが機能しますか:

実際の属性を直接設定するまで (検証時にend_at戻す):end_time

「実際の」属性のセッターもカスタマイズする必要があると思いますが、デフォルトの動作を台無しにすることなくそれを行う方法がわかりません。考え?おそらく、これを処理するためのより「Rails-y」「callback-y」な方法がありますか?

0 投票する
4 に答える
11446 参照

php - Yiiフレームワークでは、列を結合してドロップダウンリストの表示文字列として表示するにはどうすればよいですか

dropDownListビューに があり、テーブルから入力clientsされています。テーブルには、などfirst_nameの列が含まれています。表示テキストとして およびをドロップダウン リストの値として表示したいので、値として、および表示テキストですが、ここではこれらの列 (と)を結合して表示テキストとして使用したいと考えています。last_nameidfirst_namelast_nameididfirst_namefirst_namelast_name

モデルで

ビューで

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

ruby-on-rails - リブログされた記事を blog.articles 配列の適切な場所に挿入し、created_at で並べ替えます

編集: 実際、私はリブログの方法に反対することに決め、代わりに、記事からまったく新しいレコードをコピーして作成し、それに reblogged: true 列を追加することで実装することにしました。私の意見では、ロジックが少しきれいになり、以下にリストされているすべての問題が回避されます。


ブログ アプリで、2 つの外部キーを使用した結合リブログ モデルを使用して、他の人のブログの記事をリブログする可能性を実装しました。

私のブログ show アクションでは、blog.reblogged_articles を含む blog.articles を 1 つの記事配列に追加しています。次に、この配列を各要素の created_at 属性で並べ替えます。

ただし、リブログされた記事については、リブログ結合モデルの created_at 属性を使用して、リブログされた記事が最初にブログの上部に表示されるようにしたいと思います。リブログされた記事は、ブログの所有者によって作成されたかのように、常にブログ内での位置を取得する必要があります。ただし、現在、3 年前に作成された記事の場合、リブログされた記事がブログの下部に表示されることがあります。

2 つの配列をまとめる前に、おそらく reblogged_articles 配列の created_at 属性を変更する必要があります。しかし、どうすればそれを行うことができますか?

編集:明確にするための単なる例:

ブログ ID 1:
記事 ID 1、created_at: 1 年前。
記事 ID 2、created_at: 1 か月前。
記事 ID 3、created_at: 1 週間前。
記事 ID 4、created_at: 1 日前。

ブログ ID 2:
記事 ID 5、created_at: 1 日前。
記事 ID 6、created_at: 1 時間前。
記事 ID 7、created_at: 30 分前。
記事 ID 8、created_at: 約 10 分前。

さて、Blog 2 は Blog 1 の記事 1 をリブログします。この記事を、Blog 2 の上部に、作成したばかりのように表示したいと思います。しかし、その記事は実際には 1 年前に作成されたものなので、Blog 2 の下部に表示されます。これを回避するにはどうすればよいですか?

記事自体の created_at ではなく、結合モデル Reblog の created_at に基づいて、リブログされた記事を「正しい」位置に配置するための最もスマートなアプローチは何ですか?

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

ruby-on-rails-3 - 複数のパラメーターを持つ仮想属性

私はうまく動作する次の機能を持っています

私はちょうど仮想属性について学んでおり、この関数のセッター バージョンを理解するのに苦労しています。どうすればこの機能を実現できますか...

ありがとう!

更新: 次のことを思いつきましたが、これが最善の方法ですか?

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

ruby-on-rails-3 - 仮想属性のビルドを使用した UnknownAttributeError

仮想属性 :card_number と :card_verification を含むネストされたフォームがあります。コントローラーの更新アクションでこれらを使用してビルドしようとすると、ActiveRecord::UnknownAttributeError が発生します。

モデルには単純な has_one 関係があり、予定には has_one オーダーがあります

私はこのようなフォームを生成しています:

そして、コントローラーを構築します:

Can't mass-assign protected attributes: card_number, card_verificationこれにより、更新のために送信しようとすると、パラメーターを使用してエラーが発生します。

:card_number と :card_verification の値がフォームに含まれていなくても、すべて正常に機能します。

ここで何がうまくいかないのか誰か知っていますか?

編集:

私はこれを働かせることができます:

しかし、これは少し不格好に思えます。これを回避する他の方法はありますか?

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

arrays - Mongoid の空間仮想属性が持続しない

Place モデルに座標を保存するためにMongoid Spacialを使用しています。クライアント側でジオコーディングを行い、緯度と経度の 2 つのテキスト フィールドを送信しています。フィールドの名前は正しく、Rails コンソールでも座標が黙って保持されないため、これはサーバー側の問題のようです。

モデル

座標フィールドが配列であり、オブジェクトとして返されることを理解しています。

次のコマンドを使用して、座標を正常に設定できます。

self.coordinates = [-98.765432,12.345678]

ただし、次のコマンドではできません。

self.coordinates[:lng] = -98.765432

self.coordinates[0] = -98.765432

これを機能させるためにセッターを作成するにはどうすればよいですか?

0 投票する
4 に答える
3675 参照

ruby-on-rails - 仮想属性を定義して Rails フォーム検証で current_user を取得する

Rails のフォーム検証は、モデルに最も簡単に組み込まれるように設計されています。ただし、現在のユーザーが投稿を送信するために必要な権限を持っていること、およびcurrent_user変数がコントローラーとビューでのみアクセスできることを確認する必要があります。

私は同様の質問でこの答えを見つけました:

:user_goldの仮想属性を定義し、Bookアクセスできるコントローラーに設定してから、それを検証current_userに組み込むことができます。Book

current_userモデルで変数にアクセスできるように、投稿とユーザーコントローラーでこれを設定するにはどうすればよいですか?

解決:

@Deefourの回答が指摘したように、アプリケーション設計の観点からすると、このすべてが間違っています。条件が真でない限り、ビューがフォームをレンダリングしないように変更しました。

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

ruby-on-rails - Rails 3:仮想属性が設定されていません

仮想属性を持つ次のUserモデルがあります。artist_attributes

アーティストモデルは次のとおりです。

問題は、仮想属性が設定されていないことです。たとえば、ここで私のユーザーコントローラー:

そして、ここに提出されるフォームがあります:

artist_attributes仮想属性が設定されていないのはなぜですか?ネストされたフォームが原因ですか?

アップデート

フォームを送信した後のparamsハッシュは次のとおりです。

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

ruby-on-rails-3 - Railsを使用してネストされた形式でモデルの仮想属性にアクセスする方法

基本的なネストされたフォームがあります。ネストされたフォームのモデルの仮想属性にアクセスしたい。

ネストされた形式で、次のようなものを入れたいと思います。

そして、私は以下が私にこれまでのバランスを与えて欲しいです。

ネストされた_f.balance_to_date(:dated)

またはのようなことをすることができるように

ここに示すようにコードを実行すると、次のようになります。

仮想属性エラーを除いて、このフォームは期待どおりに機能します。

コードは、その時点までの残高を持つ編集可能なトランザクションのテーブルを生成する必要があります。([xx]は入力フィールドを表示する私の方法です)。

モデルの仮想属性にアクセスして表示する方法と、表示されている現在のレコードの日付に関するアドバイスをいただければ幸いです。前の質問を複製していないといいのですが。

Rails3.2.12とRuby1.9.3を使用しています。

ありがとう!フィル