問題タブ [update-attributes]
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 - update_attributes が多対多のネストされた属性に対して機能しない
一部のモデルには、ネストされた属性がいくつかあります。
@employee.update_attributes(params[:employee])
コントローラーから呼び出すと、アドレス以外のすべてが更新されます。ただし、raise params.inspect
それをスクリプト/コンソールの変数にコピーすると、機能します。例:
したがって、コントローラーからではなく、スクリプト/コンソールからアドレスが更新されたことがわかります。
これが情報の過負荷である場合、この質問の単純なバージョンは次のとおり
です。私の住所が更新されないのはなぜですか?
ruby-on-rails - Rails:「update_attributes」が失敗するかどうかを確認するにはどうすればよいですか?
buyer.save
失敗するかどうかを確認するには、次を使用しbuyer.valid?
ます。
update_attributes
失敗するかどうかを確認するにはどうすればよいですか?
ruby-on-rails - update_attributesへのブール値の受け渡しに関する問題
私は次のモデルを持っています:
しかし、既存のGuestCateringを次のコードで更新しようとすると:
ゲストケータリング変数は有効なGuestCateringオブジェクトです。guest_cateringオブジェクトには、更新後に次のようなエラーがあります。
しかし、私が合格するorderable => true
と、すべてが正常でエラーはありません。
ここで何が問題になっていますか、なぜorderableをfalseに設定できないのですか?
ruby-on-rails - Railsを更新するときに2つのモデルからのエラーメッセージを表示する
1つのフォームから2つのモデルの属性を更新しています。
@ user.update_attributesでエラーが発生すると、トランザクションが停止し、エラーメッセージがビューに表示されます。
ただし、@ userと@boardの両方を更新し、両方のエラーメッセージを取得して、ユーザーがすべての間違いを一度に修正できるようにしたいと思います。
これどうやってするの?
事前にどうもありがとうございました。
ruby-on-rails - OrdersControllerからユーザーモデルの属性を更新するRails
これは私のコードです:
クラスOrdersController
billingid
を実行すると返されますこれをユーザーモデルの列にGATEWAY.store(credit_card, options)
保存しようとしています。UsersController以外のからUserモデルの属性を更新することはできませんか?billingid
:billing_id
簡単に言えば、モデル#2のコントローラーからモデル#1の属性を更新することはできませんか?
ありがとう
更新:以下の男性の助けを借りて、2つのことを確認できました:1。result =work.params['billingid']は文字列を返します2.任意のコントローラーから別のモデルに保存できること
ただし、attr_accessible:billing_idを持っていても、結果をUserテーブルのbilling_id列に保存することはできません。Storeテーブルのstore_name列に結果を保存することに成功したので、保存を妨げているのはユーザーモデルについてわかりません。
私は走った、
そしてそれは成功しました。だが、
attr_accessibleが正しく設定されていても、これは失敗します。attr_accessible以外の特定の属性を保存できないようにする他の方法はありますか?みんな、ありがとう!
更新2:ユーザーモデル
「ダイジェスト」が必要
クラスUser<ActiveRecord:: Base
エンドエンド
最終更新:@ thisusers.errorsを使用した解決策では、このリクエスト中にパスワードの存在を検証しようとしていることがわかりました。コメントアウトすると、問題なく保存されました。なぜこれが起こっているのかわかりませんが、ここから取り上げます。みんな、特にありがとう。dmarkow!
ruby-on-rails - rails-時間/日に基づいて属性を更新する方法
時刻または現在の曜日に基づいて、データベース内の属性をどのように更新しますか。エネルギー、空腹、幸福の 3 つの属性があり、1 時間ごとに 10 ずつ減らしたいのですが、これを行う方法がよくわかりません。データベースにタイムスタンプがあることは知っていますが、それらの使用方法がよくわかりません。また、ジョブに応じてプレイヤーのスキルを毎日変更したいと考えています。したがって、この仕事をしている場合は、毎日知性を 2 増やしてください。しかし、その2を毎日追加する方法がわかりません。誰かがこの問題について助けてくれれば幸いです。大変ありがたく存じます。
ruby-on-rails - before_validation で変数を設定しようとしていますが、機能していません
したがって、私の見解では、カレンダーを使用して日を選択し、ドロップダウンを使用して時間を選択しています。したがって、私はbefore_validation
それをまとめる方法を使用しています:
提案された_時間.rb
オブジェクトを作成しているときは問題なく動作しますが、更新しているときは動作しません。
ログ
しかし、更新に使用すると、完全に失われ、元の状態に戻ります。これは、実際には保存されていないように感じさせます。したがって、この次のコンテキストを説明するのを助けるために、私はProposedTime
オブジェクトを持っており、それはConsultation
(各相談には 3 つの提案された時間があります) の子であり、次のものもありますaccepts_nested_attributes_for :proposed_times
。
相談.rb
ログ
update_attributes でエラーがスローされているのではないかと思いましたが、そうではないようです。何か案は?
ruby-on-rails - Rails 3.1でフォーム値に疑問符が含まれている場合、update_attributes NoMethodError
「?」を含む値でフィールドを更新しようとすると、update_attributes は以下を返します。
私のコントローラーは次のことができます:
- 「?」でレコードを作成する フィールド名として。
- フィールドに「?」が含まれている場合、レコードを編集/保存します。変更されないままです
- フィールドに「?」が含まれている場合、レコードを編集/保存します。「テスト」に変更されます
できない:
- フィールドに「?」が含まれている場合、レコードを編集/保存します。'?test' または 'test?' に変更されます。
- 「test」を含むフィールドが「?」に変更された場合、レコードを編集/保存します
active_record は変更されていないフィールドを無視すると思います。これが、この場合コードが機能する理由です。
ログに BEGIN と ROLLBACK も表示されるため、データベースに渡す前に update_record が文字列を引用できなかったためにエラーが発生したと考えられます。これはバグですか、それともフォーム入力を明示的に引用することになっていますか?
私の更新方法:
モデルはブランクです。
update_attributes! を使用すると、メッセージは (edit, still) になります。
申し訳ありませんが、私が言及した ArgumentError は無関係でした。
元のスタック トレース: http://pastebin.com/JQ3Cmrba
rails 3.0.7 と mysql 0.2.7 に戻すことで修正されました。
考えられる原因:
「username」と「password」は、インターフェース テーブル内のフィールドです。interface_controller は base_controller から継承します。
ruby-on-rails - 実際に変更を保存せずにupdate_attributesを実行する方法
重複の可能性:
保存せずにRails update_attributes?
基本的に、ActiveRecordの変更を保留にしたまま、ActiveRecordの「update_attributes」を実行したいと思います。これを達成する方法はありますか?なぜ私がこれを欲しがるのか疑問に思っているなら、読んでください。
静的な部分(互いに独立したテキストフィールド)、選択のセット(エントリが入力されると大きくなる)、および依存するオブジェクトのグループに対する選択の影響を示すセクションの3つの部分で構成されるフォームがあります。選択を変更するには、効果を判断するためにサーバーへのラウンドトリップが必要であり、一部の選択は将来の選択の選択に影響します。選択は、基本モデルからのhas_manyアソシエーションとしてモデル化されます。例([]エントリはHTML-SELECTを指定することに注意してください)
フォームを典型的なネストされた属性フォームとして設定しました。選択が変更された場合、通常のparamsハッシュ(例:params [:basemodel] [Associated_models_attributes] [0] [:field_name])を取得するように、AJAXを使用してフィールドをポストバックします。これを未保存のActiveRecordに入れて、元のページの一部を生成するためにすでに使用しているパーシャルを使用してJS応答を生成できるようにします(これにはjs.erbファイルを使用しています)。Basemodel.new(params [:basemodel])を使用すると、エラーが発生します
これは、既存の関連付けられたレコード(現在のレコードに空白以外のIDがある)のIDが、「新しい」呼び出しから生成される空白のIDと一致しないために発生しています(私は思います)。
私は本当に厄介なことをして、ActiveRecordのように見えるものを作成することができました(少なくとも私のパーシャルを満たすのに十分なものです)が、これは十分に一般的な問題であり、それに対する良い解決策があると考えなければなりません。
ruby-on-rails - Rails ネストされたフォームが更新されない
update_attributes でフォームのネストされたモデルを更新するのに問題があります。エラーはありませんが、ネストされた属性が保存されません。関連するコードは次のとおりです。
ユーザー モデル:
実績モデル:
ユーザーフォームの編集:
...
編集方法:
更新方法:
しかし、@user.achievements 配列を確認すると、フォームに入力しても常に空です。私が間違っていることを誰かが知っていますか?