問題タブ [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.
ruby-on-rails - STI と仮想属性の継承 (Rails 2.3)
Commentable がスーパークラスで、NewsComment がサブクラスである STI 関係があるとします。コメンタブルで私は持っています:
そしてニュースコメントで:
NewsComment をインスタンス化すると、VA self.opinionated は継承されません。何故ですか?また、NewsComment に Commentable からの継承を「強制」するにはどうすればよいでしょうか。
ruby-on-rails - Mongoid循環参照
そのため、解決方法がわからない循環参照の問題があります。したがって、ユーザーは俳優用の複数の映画のリストをテキストボックスに入力することができます。テキストは仮想属性に保持され、解析されてモデルの保存コールバックでモデルに渡されます。理想的には、モデルの構造を変更したくありません。英語で意味があり、データベースの観点からは非常に正常に見えるからです。
構造は次のとおりです。
したがって、構造は次のとおりです。俳優は、多くの映画を参照するフィルモグラフィを所有しています。そして、Filmは多くの俳優を参照するCastを所有しています。そして、問題は次の行で発生します。
アクターは<<演算子を介して再度保存され、循環ロジックが再び発生するためです。
そして、誰もが推測したように、エラーは次のとおりです。
では、循環参照スタックをオーバーフローさせずにドキュメントを保存するにはどうすればよいですか?
更新:ある考えでは、ダーティな解決策は、参照されたオブジェクトを保存せずに参照を追加する方法だと思います。
ありがとう
ruby-on-rails - rails仮想属性はform_forsubmissionから読み取られません
Ryan Bateのrailscast#167で概説されているように、railsタグ付けモデルを実装しようとしています。http://railscasts.com/episodes/167-more-on-virtual-attributes
これは使用するのに最適なシステムです。ただし、tag_namesをコントローラーに送信するためのフォームを取得できません。tag_namesの定義は次のとおりです。
残念ながら、私の場合、フォームの送信時に@tag_namesが割り当てられることはありません。理由がわかりません。したがって、デフォルトでは常にtags.map(&:name).join('')になります。つまり、tag_namesがないために記事を作成できず、既存のタグでこれらのタグを編集することもできません。誰でも助けることができますか?
ruby-on-rails - デフォルトの getter と setter は Rails でどのように見えるでしょうか?
Rails でオブジェクトの仮想属性 tag_list を作成するために attr_accessor :tag_list を記述できることを知っています。これにより、オブジェクトのフォームに tag_list 属性を含めることができます。
attr_accessor :tag_list を使用すると、モデル内で tag_list に対してアクションを実行し、フォームからデータを取得して操作できます。
私が知りたいのは、attr_accessor を記述する代わりに、attr_accessor のデフォルト機能を完全に複製するゲッターとセッターをどのように記述するかということです。例えば:
参考までに試してみました
これは動作しません。
ruby-on-rails - Rails 3のネストされた属性?
IPアドレスでサービス(サーバー)を追跡するアプリケーションがあります。新しいサービスを作成するときに次のように設定しようとしています。
- すべてのIPアドレスが検索され、service_idがない場合は、使用可能として分類され、新しいサービスページの選択ボックスに戻されます。
- ユーザーが選択ボックスから1つ以上のIPアドレスを選択し、残りの必要なサービスデータを入力し、送信を押すと、各IPアドレスが作成されたばかりのサービスのservice_idで更新されます。(IPが取得済みとしてマークされるように)。
私が理解しているように、これはネストされた属性または仮想属性のいずれかで可能になるはずだと思います...しかし、私にはわかりません。
私はそのようなモデルを持っています:
そのようなコントローラー:
そしてそのような見方:
選択した各IPが新しく作成されたservice_idで更新されるようにするにはどうすればよいですか?
ruby-on-rails-3 - 仮想属性がパラメータ内のモデルハッシュに移動されない
Rails 3.2アプリで問題が発生し、JSONを介して安らかに送信された仮想属性がparamsハッシュの適切な場所にありません。まあ、それは私が期待する場所ではありません。私の期待が正しいかどうかはまだ分からない。:)
次のような標準の仮想属性パターンを使用するモデルがあります。
コントローラに送信されるJSONは次のようになります。
明確にするために、名前とIDは仮想ではなく、評価は仮想です。
railsが魔法をかけた後、私はこれをparamsハッシュに入れてしまいます。
ご覧のとおり、idとnameはネストされた:trackハッシュになりますが、評価はそうではありません。これは予想される動作ですか?ネストされたハッシュには必要なすべてのパラメーターが含まれていないため、コントローラーでネストされたハッシュを使用するという(ある程度)標準的な方法に違反します。
ご協力いただきありがとうございます!
ruby-on-rails - Rails: 仮想属性で検索または作成
現在のRailsアプリで取り組んでいるトリッキーな問題があります。私のアプリでは、ユーザーが写真を共有しています。写真は都市に関連付けることができるので、City has_many :photos
. オートコンプリートと自然言語構文を使用して、ユーザーが自分の写真を都市に関連付けられるようにしたいと考えています。つまり、ニューヨーク州ニューヨークまたはフランスのパリです。
ユーザーが「Athens」と入力すると、次のリストが表示されるように、オートコンプリート テキスト ボックスでこれを行いたいと思います。
...そして、その人が実際に「テキサス州アテネ」を望んでいる場合は、それを入力するだけで、新しい都市レコードが作成されます。
私の都市モデルには、フィールドがありますname, state, country
。州と国は 2 文字の郵便番号です (検証には Carmen を使用しています)。full_name
北米の都市には「都市、州コード」(ニューヨーク、ニューヨークなど) を返し、その他すべての都市には「都市、国名」(パリ、フランスなど) を返すという仮想属性があります。
私の質問は、テキストフィールドを機能させるために、都市名と州コードまたは国名のいずれかを含む文字列を受け入れ、そのレコードを検索または作成できる find_or_create メソッドを作成するにはどうすればよいですか?
アップデート
神田の答えに触発されて、少し違うものを思いつきました:
これは現在私の仕様を揺るがしているので、問題は解決したと思います。
ruby-on-rails - 仮想属性検証Rails3
私はこのJquery-tokeninputまたはRails仮想属性で多くのことをしていませんが、これで壁に頭をぶつけてきました。任意のヘルプやガイダンスをいただければ幸いです。
アナウンスモデルに仮想属性リーダーがあり、次の存在を検証する必要があります。
ゲッターとセッターが続きます:
params [:announcement] [:classroom_tokens]が空でないことを確認する必要があります。上記のvalidate呼び出しは、何があっても常に空であるため、他の何かを見ているようです。私は何が欠けていますか?どんな助けでも大歓迎です。
Rails 3.1 Ruby 1.9.2
更新: もし私がそうするなら
私は得る:
ruby-on-rails - attr_accessible/protected の Rails 3 構成設定
モデルの仮想属性の問題を解決するためにかなりの時間を費やしました。モデルの attr_accessible に追加するのを単に忘れていたことが判明しました。確かに、それをもっと早くキャッチするか、最初に attr_accessible に追加して全体の取り組みを開始する必要がありました。
これが再び起こらないようにするために、何かを一括割り当てして保護/アクセスできないときに検証しようとすると、開発時に例外をスローするようにフラグを立てることができる構成設定はありますか? set を使用してすべてのホワイトリストを要求できることは知っていconfig.active_record.whitelist_attributes = true
ますが、私の質問は個々の属性に基づいています。
たとえば、上記の行は、モデルに attr_accessible :name があり、後で :nickname (仮想かどうかに関係なく) を追加し、存在 =>true をチェックして一括割り当てを試みた場合、警告を表示しません。一括代入によって保護された属性を検証しようとしたことを警告してほしい。
ruby-on-rails-3 - 仮想属性でActiveRecordレコードを取得するには?
Rails 3 では、仮想属性を検索してレコードを取得するにはどうすればよいですか? name
列があり、それにslug
簡単な変更を加えます (以下のコードを参照)。slug
to で「逆引き」を行うにはどうすればよいname
ですか?
find_by_slug
以下のメソッドの正しいコードを見つけようとしています。
find_by_slug
Rails コンソールで試してみると、Unknown key: slug
エラーが表示されます。
この質問は似ているようですが、私の問題と同じかどうかはわかりません。洞察と助けをいただければ幸いです。