問題タブ [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 投票する
1 に答える
620 参照

ruby-on-rails - ネストされたモデル、update_attributesが機能しない

教科書の更新例だと思っていたのに苦労しています。SOを検索しましたが、答えが見つかりませんでした。つまり、[送信]をクリックすると、プロファイルモデルのuser_idが消去され、他のデータは保存されません。Rails3.2.2を使用しています。

これが私が持っているものです...

ユーザーモデル...

プロファイルモデル...

ユーザーコントローラー...

ネストされたフォーム...

編集:新しいアクションを含めるようにUsersControllerを編集しました。新しいアクションが編集/更新アクションに影響するのはなぜですか?

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

ruby-on-rails-3 - update_attributes レールは作成と更新を区別します

親オブジェクトを更新し、新しい子オブジェクトを更新および作成する update_attributes を使用する入れ子になったフォーム (RailsCasts に示されているものと非常によく似ています) があります。子オブジェクトが作成されたとき、子オブジェクトが更新されたとき、および親オブジェクトが更新されたときを区別できるようにしたいと考えています。とにかくそうすることがありますか?当面の目標は、新しい子オブジェクトが作成されたときにブロードキャストをプッシュすることです。

application_controller.rb でアクションを呼び出そうとしているため、子モデルで after_create do を使用しようとしてもうまくいきません。

コードは私の親オブジェクトコントローラーです

デバッガーを使用すると、params[:parent_object] はこれを返します

参考までに、最後の部分は新しい子オブジェクト、最初の部分は親オブジェクトの更新、真ん中は子オブジェクトの更新です。

正しいパスがパラメーターをいじろうとするのか、それとも別のルートを考えようとするのかはわかりません。アドバイスをいただければ幸いです。

ありがとう、ウェルズ

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

ruby-on-rails-3 - Rails - Update_attributes が動作し、未定義のメソッド エラーが発生するようになりました

これは機能していましたが、 update_attributes を呼び出すと以下のエラーが発生します:

私を混乱させているのは、私の @song オブジェクトに「名前」が含まれていないことです。(以下のスキーマを参照)、アーティストはそうします。曲とアーティストは、多対多の関係を通じて関連付けられます。update_attributes がアーティスト オブジェクトも更新しようとしているように見えますか? これを行うべきだとは思いませんでした。ここで何が起こっているのか本当にわかりません。助けていただければ幸いです。

ありがとう、

スキーマ

パラメータの例。

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

ruby-on-rails - before_createはまだ保存します

すべての前に私はあなたの助けに感謝したいと思います

私はこのようなモデルを持っています:

これにより、ユーザーと製品に接続されたCarted_Productsというテーブルに購入注文が保存されます。

問題は、Before createが実行されるときに、テーブル内のレコードを更新して、レコードがすでに存在する場合はコントローラーから渡された量を追加し、存在しない場合は、ivが実行する限り、量を更新しますが、それでも渡されたパラメータを順番に使用して新しいものを作成します。レコードが見つかったときに両方のアクションを実行するのではなく、更新するだけにします。

あなたの忍耐のためのthnx

編集:

属性の更新後にfalseを返そうとしましたが、フィルターがキャンセルされ、属性を作成または更新しません

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

ruby-on-rails - 新しい評価が作成されたときに投稿属性を更新する

多くの評価を持つ投稿モデルがあり、各投稿の平均評価値を投稿評価データベース列に保存したいと考えています。投稿モデルに、評価の数をカウントするカウンター キャッシュがあります。

post.rb に次のコードがあります

これを before_save コールバックとして使用したため、投稿を編集して保存するたびに評価が更新されますが、あまり役に立ちません。

新しい評価が作成されるたびにこのメソッドを呼び出す方法はありますか?

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

ruby-on-rails - form_for ブロック内の password_field_tag ( ruby​​ on rails )

私の質問は、属性を更新する前にユーザーからのパスワードを確認することにより、ユーザーの「プロファイル」を更新するためのビューとコントローラーの設定に関するものです。おそらく何百万回も前に見たことがあるように、ユーザーは /users/:id/edit に移動し、テキスト フィールドに新しいメール アドレスを入力し、パスワード フィールドに現在のパスワードを入力して、送信ボタンをクリックして最終的にユーザーの電子メールを更新します。入力されたパスワードが正しくない場合、編集テンプレートが再度レンダリングされます。それ以外の場合、ユーザー レコードは新しい電子メールで更新され、:show (またはアプリに適したもの) にリダイレクトされます。update アクションでは update_attributes メソッドを使い続けるのが理にかなっていると思います。ただし、現在のパスワードの値は、私たちをうんざりさせてしまいます。

私が本当に求めているのは、私のアプローチに何か問題があるかどうかです。attr_accessible を怒らせることなく、params[:user] で update_attributes を呼び出すために、form_for ブロック内の :current_password フィールドの password_field_tag への呼び出しを含めることになりました。しかし、その後、すでにこれを行っている Web サイト (hulu や destroyallsoftware など) でいくつかのフォームを調べたところ、ユーザー ハッシュで :current_password 値を受け入れているようです (レールで構築されていると仮定して)。Twitter の設定ページを調べると、param の別のハッシュでこれを取得しているようです (つまり、params[:user][:current_password] ではなく params[:current_password])。

form_for 内で password_field_tag を使用するのは間違っていますか? これらの他のサイトは実際にこれをどのように行っているのでしょうか? 私が考えることができる唯一のことは、params ハッシュから :current_password を削除するか、各属性を個別に割り当てることです。

これが私が基本的に最終的に得たものです:

そうでなければ、これは私が考えたもう1つの方法です

または、コントローラーでこれを行う必要がありますか?:

アドバイスをいただければ幸いです。

PS - さらに、その更新アクションをリファクタリングするにはどうすればよいですか? :current_password で認証し、#update に #update_attributes の部分だけを保持する before_filter を試してみましたが、少し面倒です。この投稿は十分に長くなってきているので、来週までに理解できない場合は別の質問として投稿するかもしれません。

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

ruby-on-rails - update_attributes()は、ネストされた属性とペーパークリップに対して機能しませんか?

私のモデルは段落と画像を記述しており、各段落には多くの画像があります。画像の取り扱いには、ペーパークリップを使用しています。一括割り当ての場合、画像を段落のnested_attributesとして使用します。関連するコード:

model / paragraph.rb

model / image.rb

panel.textとimage.captionは一時的な属性です(データベースにはありません)。コントローラまたはレールコンソールで段落を更新すると(id = 1の画像が実際に最初の段落に属していると仮定して)、次のようにparagraph.textが期待どおりに更新されますが、image.captionはまったく更新されません。

ただし、ペーパークリップを使用しない同様の設定(ネストされた一時属性)では、期待どおりに機能します。たとえば、ページに多くの段落があるページの場合は、次のようになります。

これにより、ページとネストされた段落の値が期待どおりに一時的なテキスト属性で更新され、ペーパークリップの問題である可能性があると推測されます...

助けていただければ幸いです。ありがとう!!!

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

ruby-on-rails - Rails `update_attributes` nil:NilClass の未定義メソッド `first`

レコードで update_attributes を使用しようとしていますが、失敗し、その理由がわかりません。その方法を何度も使用したため、明らかな何かが欠けているに違いありません。

Globalize3名前変数を使用するモデルのデータをシードしようとしています。

City には という名前の列がないことに注意してくださいname

コンソールでは、 のようなことをしても問題ありませんcity.update_attributes(name: "new name")が、次のコード ( 内) はfirstseeds.rbで失敗し続けます:Undefined methodfor nil:NilClass

with_localeは次のように定義されています。

0 投票する
3 に答える
2387 参照

ruby-on-rails - Update_all または update_attribute が列を更新しない

ユーザーが電子メールで送信できるステータス レポートがあり、配信アクションが完了した後で、列 :sent_mail を true に更新したいと考えています。

そしてテーブルクラス

ただし、コンソールでは、sent_mail はまだ false に設定されています。これが機能しない理由はありますか? ありがとう!

0 投票する
0 に答える
222 参照

ruby-on-rails - Rails 3、単一のcheck_box_tagまたはConfirm-/Refuse-Buttonsでhabtm関係を更新する方法

次のようなhabtm モデルがあります。

recurrences_controller の標準アクション (index、show、new、edit、create、update、destroy) を使用します。

単一の繰り返し (/recurrences/10 -> show-action) のビューで、ユーザーの参加を作成/更新しようとします。上記のビューで次のようなことをすると:

1 人以上のユーザーの参加を追加または削除できます。

しかし、私はそれをするのが好きです-たった1人のユーザー、つまりcurrent_userのために!以下のソースで試しました。

動作していない、より詳細

  • 変更されていないステータスの更新: 参加していない、何もしない: 正解です。
  • ステータスの変更: 非参加から参加へ、current_user で機能しますが、他のユーザーのステータスも削除されます: 間違っています!
  • ステータスを変更: 参加中から不参加に変更しても、何も変わりません: 間違っています!

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

最後に、繰り返しの隠しフィールドを使用してチェックボックスを確認/拒否ボタンに減らしたいのですが、おそらくもっと簡単な方法がありますか?