[解決済み] params[:something]からフィールドを削除する方法
2022-07-11 15:14:35
質問
Usersモデル用の登録フォームで、companyに文字列の値を取ります。しかし、先日、usersがcompanyに所属するように変更しました。そのため、UsersモデルにCompanyのオブジェクトを渡す必要があります。
フォームから文字列の値を使って、Companyのオブジェクトを取得したい。
@user.company = Company.find_by_name(params[:company])
上記は動作すると思いますが、私が呼び出すと、フォームがモデルに :company (文字列) を渡しています。
@user = User.new(params[:user])
したがって、Userモデルに渡す前に:companyパラメータを削除する方法を知りたいのです(方法が見つかりません)。
どのように解決するのですか?
Rails 4/5 - 編集された答え (コメント参照)
この質問が書かれてから、Railsの新しいバージョンには を抽出します! と を除く など。
new_params = params.except[the one I wish to remove]
これは、必要なすべてのパラメータをコピーに「取り込む」安全な方法です。ただし、渡された元のパラメータを破棄する必要はありません(デバッグやコードのメンテナンスが非常に困難になるため、これは良いことではありません)。
または、例えばコピーせずに直接渡すこともできます。
@person.update(params[:person].except(:admin))
は
extract!
(演算子!を持つ)は元を修正するので、より注意して使ってください!
オリジナルの回答
Hashからキー/値のペアを削除するには、次のようにします。
Hash#delete
:
params.delete :company
params[:user]に含まれていれば、これを使うことになります。
params[:user].delete :company
関連
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] Rubyの文字列から日付への変換
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] ルビーオンレール モデルから明確な値を選択する
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある
-
[解決済み] RSpecとCucumberの違いは何ですか?[クローズド]
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bundler: コマンドが見つからない
-
[解決済み] Railsサーバーがポートはすでに使用されていると言う、そのプロセスを殺すにはどうすればよいですか?
-
[解決済み] 変更欄のRailsマイグレーション
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] RVMでRubyのデフォルトバージョンを設定するには?
-
[解決済み] RoRにおけるSpringサーバーの機能とは?
-
[解決済み] Railsコントローラからホスト名を取得する
-
[解決済み] rspecにおけるassignsの意味
-
[解決済み] ActionController::RoutingError: 初期化されていない定数MicropostsController