問題タブ [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 に答える
1573 参照

mysql - ActiveRecord を使用した Rails 仮想属性

次の簡略化されたスキーマを持つ MySQL データベース テーブルがあります。

whereはMySQLhex_idで a として宣言されています。BIGINTユーザーが 16 進数値を入力してから、それを基数 10 に変換してhex_id. hexこれを実現するために、16 進数の文字列を格納するという仮想属性を作成しようと考えました。私のSensorモデルは次のようになります。

コントローラーは標準のレール生成コードを使用しています。

hex属性を使用するフォームでビューを作成しました。

[送信] をクリックすると、params配列には次の内容が含まれます。

{"utf8"=>"✓", "authenticity_token"=>"some_long_token", "sensor"=>{"hex"=>"E000124EB63E0001"}, "commit"=>"Create Sensor"}

私の問題は、属性hexが常に空で、検証が失敗することです。仮想アトリビュートの使用方法を説明するリソースは Web 上に多数ありますが、仮想アトリビュートを と組み合わせて使用​​する方法を説明するリソースはほとんどありませんActiveRecord。このかなり単純な問題を解決する方法を探すのに何時間も費やしましたが、うまくいくものは何も見つかりませんでした. どんな助けでも大歓迎です。私のルビーのバージョンは 2.0.0p481 です。ありがとう!

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

ruby-on-rails - ネストされたフォームの仮想属性は記録されません

私のコードでは、「has_many => belongs_to」モデルの関連付けと、新しいアクションのビューにネストされたフォームがあることがわかります。

さらに、Railsフォームハンドラーで同じパラメーターに2つの別々のフィールドを使用しましたか?

問題は、「prix」属性 (「Projet」モデル) がデータベースに記録されますが、「nom」属性 (「Activite」モデル) は記録されないことです。

問題は強力なパラメータにあるのかもしれませんが、私のコードではすべて問題ないと思います...または、リンクした他のStackoverflowの質問で見つけたコードの中にあるかもしれません。

私のコードにはフランス語の単語があります: activite は活動、projet はプロジェクト、nom は名前、prix は価格、非常に簡単です :)

ご協力いただきありがとうございます !

アプリ/モデル/projet.rb:

アプリ/モデル/activite.rb:

app/controllers/projets_controller.rb :

app/views/projets/new.html.erb :

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

ruby-on-rails - Rails 4 Minitest 仮想属性のテスト

そのため、クラス TimeBank があり、その更新が行われ、他の 2 つの既存の属性 (DB 列) を操作する 2 つの新しい仮想属性を取得しています。

アプリケーションを使用すると、すべてが正常に機能します。テストを実行するとき、TimeBank をインスタンス化するときはいつでも、上記のステートメントの結果、つまり と の今日の日付のみを取得rescueします。セッターは、(テスト中に) 何もしないように、無反応に見えます。date_worked0.0hours_worked

使用するセッターも定義しましたがwrite_attribute(:date_worked, 'SOMEVAL')、それがアプリケーション内で機能している間、テストの場合、次のようなエラーが発生します

テストの例は次のようになります。

どちらのアサーションも、今日の日付と 0.0 (ゲッターで指定された「デフォルト」) を取得するため、常に失敗します。テストの直前に行に属性を設定しても、効果はありません。

何が間違っているのかわかりません。これら 2 つの仮想属性のテストを書きたいのですが、それらの値を設定しても効果がないようです。テスト内で機能しない理由はわかりませんが、アプリケーション内では正常に機能します。同じコードが、アプリケーション コントローラー内で期待どおりに機能します。誰かが理由を理解するのを手伝ってくれますか?

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

ruby-on-rails - 仮想属性 Rails - 不明な属性エラー

Rails 4 アプリケーションを作成しています。それぞれincidentが に属しuserます。各事件has many events。インシデントを作成して、イベント モデルに存在するcurrent_user.incidents.new属性を渡すことができるようにしたいと考えています。message作成時に、上記の新しいイベントを作成したいと思いますmessage

これが私のインシデントモデルです。

しかし、私が実行する@i = Incident.new(message: 'something')と、私は得るActiveRecord::UnknownAttributeError: unknown attribute 'message' for Incident.

これを理解するのを手伝ってください。

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

ruby-on-rails - Rails のネストされたモデルと仮想属性の初期化

ネストされたモデルに属性がどのように「送信」されるかを理解するのに問題があります。また、仮想属性を持つモデルでもこれを行うことができるかどうか。私は3つのモデルを持っています:

コンソールで:

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

yii2 - Yii2 非 DB (または仮想) 属性は、大規模な割り当て中に入力されませんか?

仮想属性を定義しました:

大規模な割り当て中 (フォームを送信した後、 で) に値が入力されていないことに気付きました$model->load($_POST)。DB属性とともに何らかの方法で入力できますか? それとも、データが入力されていないのに何か間違ったことをしていますか? ありがとう!