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

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

ruby-on-rails - Rails 2. update_attributes による仮想属性のセッターの呼び出し

フォーム (:pagesize) に、データベースにない追加の属性が 1 つあります。そのためのセッターもあります:

「update_attributes」メソッドでそのセッターを呼び出す必要があります。:pagesize 属性に最適なタイプは何ですか? attr_accessor、attr_writer...

0 投票する
6 に答える
7543 参照

ruby-on-rails - キャリアウェーブがアップロードしたファイルを更新/名前変更する方法は?

Rails 3.2.6 で Carrierwave-mongoid でアップロード/管理されているファイルを更新/名前変更する方法がわかりません。ファイルシステムだけでなく、データベース内のファイルの名前を変更したい。

このようなものかもしれません...

これはすでにアップロードされた後であることを付け加えさせてください。

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

ruby-on-rails - :typeフィールドが形式の場合、SQLUPDATEは単一テーブル継承では呼び出されません

STIを使用していくつかのモデルをセットアップしています

人<ActiveRecod....。

おとこ

女性

タイプフィールドを指定しましたが、新しいレコードの作成は正常に機能します。サブタイプ(男性または女性)はレコードとともに正常に保存され、タイプ列のは正しいタイプです。

ただし、レコードを更新/編集しようとすると、SQLUPDATEが呼び出されません。update_attributesはtrueを返します。ログはSELECTの呼び出しを示していますが、UPDATEは呼び出されていません。

フォームからタイプフィールドを削除した場合。保存する新しいレコードを作成します。ただし、タイプフィールドはnullです。しかし、その後、レコードを更新できます。

これを修正するためのアイデアや回避策はありますか?

コントローラコード

私が新しいと呼ぶとき、それはサブクラスのためになるでしょう、すなわち

私はこれのために準備されたルートを持っています、すなわち

私が問題を抱えている場所である編集を呼び出すとき、すなわち

コンソールでレコードを作成および編集する場合は注意してください。作成され、更新されます。

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

ruby-on-rails - 選択したレコードのレールでnested_attributesのテキストフィールドを作成する方法は?

ReportQuestionAnswerの 3 つのモデルがあります。

答え

質問

レポート

新しいレポートの作成中に、いくつかの質問がランダムに選択されてレポートに追加され、次のようにフォームが表示されます。

報告書

---部分的な質問フィールド---

---Partial Answer_Fields--- <%= f.text_field :name, :placeholder => "ここに回答を追加" %>

しかし、新しいレポートを編集/作成しようとすると、その特定の質問に対する既存の回答がすべて取得されます。私は次のようなものを実装したいのですが:

---部分的な質問フィールド---

---部分的な質問フィールド---

質問モデル

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

ruby-on-rails - update_attributes 日付フィールドの消去

フォームで日付を文字列として取り込み、実際の日付フィールドとしてデータベースに保存しています。その上で update_attributes を呼び出すと、アクセスできるようになる前に Rails が値をクリアしているように見えます。手動で設定しても、実際には設定されません。

テーブル:

モデル:

コンソール:

ここで、update_attributes を使用しようとすると、before_validation コールバックで値を変更できる可能性があると思いますが、そこでも値を使用できません。

クラスにコールバックを追加します。

update_attributes で動作するようにこれに対処する方法について何か考えはありますか? 明らかに、カスタムのセッターとゲッターを作成できますが、それらは update_attributes で呼び出されません。

アップデート

列を「thingdate」に変更してみましたが、同じ結果が得られました。

今のところ、次のように問題を回避しました。

何らかの理由で、これにより、値 (実際には、日付のように見える任意の値 (おそらく制限は postgres にあります)) をオブジェクトに格納するだけでなく、保存することもできます。このように上書きする必要があるオブジェクトに対してRailsが何をしているのか正確にはわかりません。どんなヒントでも大歓迎です。

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

ruby-on-rails-3 - コントローラーのRuby on Railsで属性をデータベースに複数回更新する必要があります

理由により、データベーステーブルの更新を何度も実行する必要があります。whileループでロジックを書きました。そのため、配列の長さに達するまで、属性のさまざまな値をデータベースに更新します。

しかし、そうではないようです。

最後の更新ステートメントのみが実行されています。それはなぜです?

それに応じて複数の更新ステートメントを実行するにはどうすればよいですか?

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

database - Ruby on Railsで一度に複数のレコードを更新するにはどうすればよいですか?

Ruby on Rails アプリを開発しています。私のコントローラーでは、テーブル属性を複数回更新する必要があります。このロジックをコントローラーに入れました。

これは、tags 配列のサイズに達するまで while ループを繰り返します。そして、テーブル内の異なる値で複数回更新が行われます。

これにより、すべてのレコードが更新されます。配列サイズが 3 の場合、3 つのレコードが挿入されます。しかし、それは起こっていません。配列を各行の差別化要因として使用して複数のレコードを挿入する方法を誰か教えてもらえますか?

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

ruby-on-rails - セッションタイムアウトレールの属性を更新する

ユーザーがログインするときにdbフィールドに「1」を設定し、ログアウトするときに「0」を設定して、オンラインユーザーリストを作成しようとしています。問題は、ユーザーがサイトを離れたばかりの場合でも、「1」はデータベースに残っているため、セッションの有効期限が切れたときに更新することです。

ログイン用:

ログアウトの場合:

誰かが私にそれを行う方法を提案できますか?

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

activerecord - RoR、select_tag の値を params ハッシュに配置

関連付けを更新するための受け入れられた方法について混乱しています。Worker と Factory の 2 つのモデルがあるとします。Worker を編集するとき、ファクトリのリストを含む select_tag がユーザーに表示されます。私の問題は、factory_id が params[:worker][:factory_id] ハッシュではなく、代わりに params[:factory_id] ハッシュにあるという事実です。最終的な結果として、worker.update_attributes が呼び出されたときに、factory_id は :worker ハッシュにないため更新されません。

私の質問は、erb ファイルを変更して factory_id を params[:worker] ハッシュに取得しようとするか、params[:worker][:factory_id] の値を params で見つかった値で手動で更新する必要があるかです。 [:factory_id]。以下は、そこでやるべきことが違う場合に備えて、私のerbコードです。また、それが役立つ場合は、Factory クラスには多くのワーカーがあり、Worker クラスは Factory クラスに属しています。

どんな助けでも大歓迎です。

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

ruby-on-rails - update_attributesがデータベースに保存されていません

フォームが送信された後、正しいカスタムパラメータがデバッグ機能に表示されますが、コンソールに入るとデフォルトのパラメータが表示されます。

コントローラ

モデル

ノート:

  • SOでこれに最も近い質問は、関連付けを通じて存在するオブジェクトの属性を変更する質問です。

  • Object.updateメソッドを使用しようとしましたが、次のようなエラーが発生します。

    プライベートメソッド`update'が#を要求しました

何か案は?

ありがとう!