問題タブ [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 で Friendly ID と i18n を使用すると、上書きが発生する
使用: - Rails 3.0.3 - Friendly_id 4.0.0 Beta 11 - Windows - i18n (0.6.0, 0.5.0) (「gem list」による)
セットアップ: スウェーデン語と英語を言語として使用した計算に関する多言語 Web サイトを持っています。Friendly_id を使用して、seo フレンドリーな URL を作成しています。
私のmysqlテーブルには、「slug」、「slug_se」、「slug_en」という列があります。「slug」列を使用する必要があるかどうかはわかりませんが、「slug_en」と同じです。
問題: 「update_attributes」を使用すると、「slug_se」が「slug」(デフォルトでは英語) で上書きされます。したがって、「slug」の値は「slug_se」に書き込まれます。
トラブルシューティング: - この問題を Google で調べたところ、Google フォーラム (http://groups.google.com/group/friendly_id/browse_thread/thread/154f4a5024e23418) で (未回答の) フォーラム スレッドが 1 つだけ見つかりました。- update_attributes の代替手段を見つけようとしました。
質問: - 「スラッグ」カラムを使用する必要はありますか? - ID も更新しようとしない update_attributes の代替手段はありますか? - 私がやっていることに、問題の原因となっている何か問題があると思いますか?
コード: モデル:
ruby-on-rails - フィールドが更新されていない場合でも、Sphinx がデルタ インデックスを更新することを考える
更新属性で指定されたフィールドが実際には変更されていない場合でも、sphinx がデルタ = 1 を設定すると考えると、多数の不要なクエリが起動されます。実際の更新がなかったことをスフィンクスに知らせるために何かできるでしょうか。
initialization - 新しい埋め込みオブジェクトで mongoid.update_attributes が失敗する
親から update_attributes を使用して新しい埋め込みオブジェクトを作成しようとしています。mongoid 2.0.0.beta20 では問題なく動作していましたが、2.3.3 にアップデートすると失敗します。
再現するには、次のモデル構造を使用できます。
次に、Ruby コンソールで実行します。
これは、新しい値が設定される前に埋め込みオブジェクトが初期化されないためです。そのため、サイズ配列は初期化されず、まだ nil のままです。mongoid-2.0.0.beta20 (そこからアップグレード) を使用すると、すべて正常に動作します。私が見逃しているものはありますか?新しいmongo-2.3.3は、MEが最初に埋め込みオブジェクトを初期化することを期待しています!?
助けてくれてありがとう|ヒント。
ruby-on-rails - Rails 3.1 CreateアクションでのActiveRecordの奇妙な動作
Rails 3.1.0 の使用
「pmf = ...」行が存在しない場合、この行が表示されます
「pmf = ...」行が存在する場合、作成アクションは正常に機能します。何が起こっている?
ruby-on-rails - update_all は機能しますが、update_attributes は機能しません
以下の 2 つのコードは、データベースを更新するためのものです。
「update_attributes」プロパティを使用する最初のバージョンが機能しない
ただし、「update_All」属性を使用する以下のコードはうまく機能しているようです。
Emiexpression のクラス コードは次のとおりです。
なぜそうなのか、私は混乱しています。
「Emiexperiment」モデルでは検証を使用していません。
これに関するヒントは大歓迎です。あなたの助けに感謝します:)
ruby-on-rails - validation_context & update_attributes
update_attributes で validation_context を指定するにはどうすればよいですか?
2 つの操作 (update_attributes なし) を使用してそれを行うことができます。
ruby-on-rails - Rails counter_cache'd の関連付けが update_attributes で更新されています。counter_cache 列が更新されない
次のような counter_cache 列を使用する Rails 2.3.14 アプリを実行しています。
ワークショップをグループに直接割り当てると、カウンター キャッシュが正常に更新されます。
ただし、group_id を従来の Rails コントローラー スタイルでワークショップに一括割り当てすると、キャッシュは更新されません。これは 2.3.14 のバグだと思います。
古いバージョンにも存在します: http://railsforum.com/viewtopic.php?id=34473
ただし、投稿者の「解決策」には二重カウントのバグがあります。直接割り当てると、デフォルトの Rails アップデーターとコールバック 1が取得されますが、update_attributes では機能します。
そのため、いくつかのことを実行できます。params ハッシュから group_id を取り除き、直接割り当てることができます。または、Workshop モデルの update_attributes にモンキー パッチを適用して、これを行うこともできます。
@workshop.update_attributes を呼び出す可能性のある他の人が同じバグに遭遇する可能性があるため、params ハッシュを取り除くことは避けたいと思います。モンキー パッチの update_attributes は最も安全に思えますが、完全に、恐ろしく間違っています。
他の提案はありますか?
ありがとう!
ruby-on-rails - ルートを変更した後のRubyonRailsのupdate_attributesの問題
Ruby 1.9.2p290
Rails 3.1.0
私は足場からサイトを構築し、ルートを変更しようとしているので、:idを使用する代わりに:gameNumberを使用できます。
私のコントローラーで私は変更しました
から
に
私の見解では私は変わった
から
に
私が抱えている問題は、更新しようとすると、nilエラーが発生することです。問題は、更新ボタンが:gameNumberではなく:idを使用しているためだとわかっていますが、修正方法がわかりません。問題に関連するコードは次のとおりです。
コントローラ
形
問題を説明したり、問題を説明したり、解決策を提供したり、これを行うためのより良い方法を提供したりできるリンクを誰かが教えてくれれば、本当にありがたいです。
ありがとう。
アップデート:
エラーは次のとおりです。
TicketsController#updateのNoMethodError
Rails.root:C:/ home / worksheet / App
アプリケーショントレース
app / controllers / ticket_controller.rb:65:block in update'
app/controllers/tickets_controller.rb:64:in
更新中 '
リクエスト
パラメーター:
フレームワークトレースとフルトレースもご希望ですか?
アップデート2:
モデルに以下を追加すると、次のようになります。
次のエラーが発生します。
Tickets#editのNoMethodError
行#1が発生したC:/home/workspace/App/app/views/tickets/_form.html.erbを表示しています。
抽出されたソース(1行目あたり):
テンプレートの包含のトレース:app / views / tickets / edit.html.erb
Rails.root:C:/ home / worksheet / App
アプリケーショントレース:
リクエスト
パラメーター:
ruby-on-rails - 変更がない場合でも、レールのシリアル化された属性が更新されないようにする方法はありますか?
これはおそらく、すべての新規ユーザーが遅かれ早かれ Rails について知ることの 1 つです。内部で実際に何かが変更されたかどうかを確認せずに、レールが serialize キーワードですべてのフィールドを更新していることに気付きました。ある意味で、それは一般的なフレームワークに対して行うのが賢明なことです。
しかし、この動作を無効にする方法はありますか? シリアル化されたフィールドの値が変更されたかどうかを追跡できる場合、更新ステートメントで値がプッシュされないようにする方法はありますか? 「update_attributes」を使用して、ハッシュを対象のフィールドに制限しようとしましたが、レールはまだシリアル化されたすべてのフィールドを更新します。
提案?
authentication - rails update_attributes
私のユーザーモデルには
そして、ユーザーのコントローラーに対する私の更新アクションは
私の編集ビューは
問題は、モデルの特定の属性のみを更新し、毎回パスワードを入力したくないということです。パスワード(および確認)を入力しないと、検証エラーが発生します)
どうすれば状況を修正できますか?