問題タブ [mass-assignment]

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 に答える
1088 参照

ruby-on-rails - Delayed_job(2.1.4)エラー:ジョブを読み込めませんでした:IOのインスタンスが必要です。ハンドラーnil

単純なアチーブメントシステムを作成し、delayed_job(2.1.4)を導入して処理を処理したいと思いました。ただし、delayed_jobsテーブルのハンドラ列は常にnilであるため、last_errorテキストが生成されます。Job failed to load: instance of IO needed. Handler nil

これが私の設定です:

アチーブメントオブザーバー

トロフィージョブ

delayd_jobsテーブルのエントリが作成されます。ただし、ハンドラーは常にNULLです。私はすでにさまざまなことを試しました(以前は完全なオブジェクトを通過しましたが、ここで説明するようにid + classnameを使用しました: delayed_jobでの奇妙な例外;オブザーバーでxxxTrophy.delay.progress(...)を試しました;など)-すべてなしラック。

私も持っています

私のboot.rbで。

言及する価値のある1つのこと:last_errorテキストはdelayed_jobで埋められますが、attempts列とfailed_at列はNULLのままです。

私は何が欠けていますか?

アップデート

シリアル化が期待どおりに機能することを確認しました。

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

ruby-on-rails - Rails アソシエーションは外部キーを一括割り当てできません

たぶん私は間違っているかもしれませんが、ここに私の問題があります:

これにより、user_id が に設定された新しいレストラン オブジェクトが作成されますcurrent_user.idattr_accessible :user_idこれは、レストラン モデルを設定した場合にのみ機能します。そうでない場合は、

私が望むのは、user_id経由を定義することですが.build、同時にattr_accessible :user_id、誰かがこのレコードの user_id を他のユーザーの ID に設定する可能性があるため、これは望ましくありません!!

.build外部キーはこの Mass Assignment Security から除外され、関連付けまたは.createメソッドを介して新しいオブジェクトを作成すると強制されると思いました。

助言がありますか?に戻りたくない

その種の目的を無効にするため.build

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

ruby-on-rails - モデルにコントローラーが関連付けられていない場合、大量割り当てから保護する必要がありますか?

これは、ベテランの Rails 開発者にとってはばかげた質問のように聞こえるかもしれません。モデルにコントローラーが関連付けられていない場合、大量割り当てから保護する必要がありますか? 必要はないと思いますが、誰かがこれを確認できれば素晴らしいと思います。

また、コントローラーはあるが、作成/更新/破棄アクションへのルートがないシナリオはどうですか?

ありがとう、ノエル

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

ruby-on-rails - Rubyにスライス関数の反対の関数はありますか?

この投稿では、スライス関数を使用して params の必要な要素のみを取得します。params の要素 (user_id など) を除外するために使用する関数は何ですか?

ありがとうございました。

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

ruby-on-rails - Rails での大量割り当てを回避するために、params ハッシュ内の機密要素を置き換えます

大量割り当てを避けるために、自分自身のためのより体系的な解決策が必要です。

典型的な状況は、id または user_id を params (フォーム経由で自動的に送信される) から削除し、内部で (MyController#create で) current_user.id に置き換えることです。

私が考えることができる解決策は、params ハッシュからオブジェクトを作成し、(親オブジェクトと子オブジェクトの) update_attributes を作成して、機密属性を内部値に置き換えることです。

これを言うためのより短い/よりドライな方法はありますか?

設定、プロファイルなどがユーザーの子オブジェクト (build メソッドで作成) である場合、ユーザーの外部キーを検索し、それらを親に渡した値に自動的に置き換えるメソッドを作成するにはどうすればよいですか?

ありがとうございました。

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

ruby-on-rails - rake タスクの実行時に大量割り当ての警告が表示されない

次のような数行のシード ファイルがあります。

ここで、rake db:seed を実行すると、コマンドは警告なしで終了しますが、データベースにはレコードが作成されません。

Railsコンソールで上記の行を実行したときだけ、「警告:保護された属性を一括割り当てできません:名前」というメッセージが表示されました。

rake db:seed にこのタイプの警告を表示させる方法はありますか?

ところで、名前を attr_accessible リストに追加するだけで問題が解決します。

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

ruby-on-rails - Rails 3.1:as =>:adminを使用して、attr_accessibleによって保護されている属性を更新します

Rails 3.1 APIのattr_accessibleについて読んだ後、そこにas:adminオプションがあることがわかりました。2つのことを知りたいです。

  1. ユーザーが管理者フラグを持っている場合、コントローラーはどのようにしてユーザーが管理者であることをモデルに通知しますか。

  2. ユーザーが所有者である場合、:as => ownerモデルで指定できますか。また、コントローラーがモデルにアイテムの所有者であることをどのように通知しますか。

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

ruby-on-rails-3 - 保護された属性を一括割り当てできません: アドレス

ネストされた属性を割り当てようとすると、ログに次のように表示されます。見つけたすべての回答をスキャンして試しましたが、何も機能しません。

users, "authority_id"=>"1", "provider_id"=>"11789", "details"=>"", "directions"=>""}} ユーザー ロード (0.4ms) SELECT .* FROM usersWHERE users. id= 4 リミット 1

警告: 保護された属性を一括して割り当てることはできません: アドレス

私はCareHome < ServiceのSTIを持っています。アドレスは多態的な関係です。

サービスで私は持っています:

CareHomeController#new/create に私が持っている

:address を attr_accessible に追加すると、エラーが発生します。

アドレス (#2560574700) が予想され、ActiveSupport::HashWithIndifferentAccess (#2157282280) を取得しました

Rails のバージョンは 3.1.1 です。

何か微妙なことに違いないと思いますが、試すアイデアが尽きてしまいました。どんな助けでも大歓迎です!

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

ruby-on-rails - ネストされた属性を更新します: 警告: 保護された属性を一括割り当てできません: エラー

私はこれに多くの時間を費やし、引っ張って髪の半分を失いました. ヘルプ。

user:

right:

意見:

しかし、更新すると、次のように言い続けます:

ユーザーpdgに追加することで をバイパスできますが、. として挿入されます。:pgd_idsattr_accessiblelink_idlink_idNULL

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

ruby-on-rails - Rails3.1の一括割り当て階層構造

CRUDの特定のモデルに異なるアクセス制御レベル(アプリでは3レベル)を設定しようとしています。認証にRPAMを使用し、ユーザーを追跡するためにセッションを使用するため、アプリにはユーザーモデルはありません。承認レベルを設定するために、user_roleという名前のモデルを作成して、ユーザー名に役割を割り当てました。DBでは、次のようになります。

私はこのように定義されたモデルを持っています:

役割の階層構造を構築するにはどうすればよいですか。limitedが実行できるすべてのことについて、管理者も実行できますが、その逆はできません。