問題タブ [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 が nested_attributes を更新しない場合がある
Rails 3.2.8 で小さな CMS アプリケーションを作成しています。段落 (基本的にはニュース記事などのタイトル、本文、日付を保持する) とページ (多くのニュース記事などの多くの段落で構成される) のモデルがあります。以下は、日付が変更された場合にのみ段落を更新します。それ以外の場合、たとえば本文が変更されたとしても、段落は更新されません!?
以下に、モデルの関連部分を示します。
page.rb
段落.rb
この奇妙な動作の理由について誰か考えがありますか?
ruby-on-rails-3 - 親で更新中にネストされた属性でユーザーIDをマージする方法をレール
Rails 3.0.9を使用しています
has_many :through
ユーザーが新しい親レコードの作成中に新しい子レコードを作成でき、親レコードの更新中にユーザーが子レコードを作成/削除できる関連付けのあるモデルがあります
例えば:
fields_for
posts_controller.rb では、Post で nested_attributes を形成するために使用してコメント レコードを保存/更新しform_for
、パラメーターを期待どおりに形成しています。
問題は次のとおりです。
user_id
ここで、新しいネストされたすべてのコメント属性の列をマージすることはできません。params[:post][:comments_attributes]
これは、によって無視されattr_accessible
ます。
user_id
各コメントレコードに列をマージ/割り当てる最良の方法はありますか?
ruby-on-rails - 作成してから更新 - Rails
フォームから送信される以下のパラメーターのセットがあります
カテゴリ モデルに属するリンク モデルに新しい「リンク」レコードを作成したいと考えています。リンクコントローラーの「作成」アクションは次のようになります
update 属性を指定せずに @link.save を実行すると、コメント、URL、およびカテゴリ ID のみが保存されます。ただし、上記は 2 つのレコードを作成します。1 つはコメント、url、category_id で、もう 1 つはすべてのデータを含みます。
これにより、すべての情報を含む 1 つのレコードのみが作成されるようにするにはどうすればよいですか?
更新 3 つのパラメーターを使用してレコードを作成し、残りのパラメーター (links_attributes) を使用して更新できれば、それで問題ありません...どうすればよいかわかりません。
これは、送信時に取得する出力です。
これは私のフォームです:
これは私のルートです:
ruby-on-rails - Railsupdate_attributesがレコードを更新していません
「entries_controller.rb」に次のコードがあります
クライアントからサーバーにputリクエストを送信すると、コンソールに次のように表示されます。
ご覧のとおり、古いレコードは実際には更新されていません。if句がtrueと評価されたとしても。「title」の値が「Home」から「UpdatedHome」に変更されていないことを確認してください。
これのバグは何だろうか?更新されたとのことですが、実際には更新されませんでした。
誰かが私がこれを理解するのを手伝ってもらえますか?
ありがとう
ruby-on-rails - Rspec any_instance should_receive は次のメッセージを受信する必要がありましたが、受信しませんでした
any_instance.should_receive がエラーをスローする rspec のスキャフォールド テストに問題があります: 失敗/エラー: バックトレースから一致する行が見つかりません
FactoryGirl と strong_parameters を使用した Rspec コード:
コントローラーコード:
テスト出力:
コントローラーで更新されたオブジェクトを出力していて、それは正しいのに、テストが失敗するのはなぜですか?
ありがとう!
ruby-on-rails - Rails-accepts_nested_attributes_forを使用せずにネストされた属性を管理する方法は?
私の問題は、accepts_nested_attributes_forの制限に遭遇したことです。そのため、柔軟性を高めるために、その機能を自分で複製する方法を理解する必要があります。(正確に私を悩ませているものについては、以下を参照してください。)したがって、私の質問は、accepts_nested_attributes_forを模倣および拡張したい場合、フォーム、コントローラー、およびモデルはどのように見えるべきですか?本当の秘訣は、既存のモデルと新しいモデルの両方を既存の関連付け/属性で更新できるようにする必要があることです。
ネストされたフォームを使用するアプリを作成しています。私は当初、このRailsCastを青写真として使用しました(accepts_nested_attributes_forを活用):Railscast 196:ネストされたモデルフォーム。
私のアプリはジョブ(タスク)を含むチェックリストであり、ユーザーがチェックリスト(名前、説明)を更新し、関連するジョブを1つのフォームで追加/削除できるようにします。これはうまく機能しますが、これをアプリの別の側面、つまりバージョン管理による履歴に組み込むと、問題が発生します。
私のアプリの大きな部分は、モデルと関連付けの履歴情報を記録する必要があることです。私は自分のバージョン管理をロールバックすることになりました(これが私の決定プロセス/考慮事項を説明する私の質問です)、そしてその大部分は古いものの新しいバージョンを作成し、新しいバージョンを更新する必要があるワークフローです、古いバージョンをアーカイブします。これは、UIを介してモデルを更新するだけのエクスペリエンスであると見なすユーザーには見えません。
コード-モデル
コード-現在のフォーム(注:@jobsは、チェックリストコントローラーの編集アクションでこのチェックリストのアーカイブされていないジョブとして定義されます。@ checklistも同様です)
コード-checklists_controller.rb#Updateからのスニペット
ここで、accepts_nested_attributes_forの制限に遭遇します(ここでかなり詳しく説明されています。基本的に設計どおりの「ID=YのModel2のID=XのModel1が見つかりませんでした」という例外が発生します。
では、複数のネストされたモデルを作成し、accepts_nested_attributes_forと同様に、親モデルのフォームでそれらを追加/削除するにはどうすればよいですか?
私が見たオプション-これらの最高の1つですか?本当の秘訣は、既存のモデルと新しいモデルの両方を既存の関連付け/属性で更新できるようにする必要があることです。リンクできないので、名前を付けます。
Redtape(github上)Virtus(またgithub)
ご協力いただきありがとうございます!
ruby-on-rails - Rails: 複数のモデルの複数の属性を同時に更新する
2 つの異なるモデルで 1 つのフォームから取得した値を同時に更新したいので、次のコードを作成しました。
しかし、上記のコードは次のエラーを出しています
ActiveRecord::RecordInvalid
検証に失敗しました: 開始日を空白にすることはできません
以下は、私が使用している 2 つのスキーマです。@ messのMessTypeモデルと@mess_priceのMessPriceモデルです。
ruby-on-rails-3.2 - ActiveRecord::RecordNotSaved update_attributes 説明できないエラー
Rails 3.2 で ActiveRecord::RecordNotSaved を受け取りましたが、その理由がわかりません。私に発生する唯一のことは、ある種の宝石の競合ですが、それ以外は、このエラーは、私が知る限り、Rails のすべての規則とドキュメントに反しています。
私の正気は急速に危険にさらされているため、どんな助けも高く評価されます.
ActiveRecord クラス
次のエラーが表示されます。
そして、ここに私のGemfileがあります: