[解決済み] Railsの場合。コールバックを使わずにモデルの属性を更新する
2023-05-26 04:15:20
質問
私は、:credits属性を持っているユーザーモデルを持っています。 私は、ユーザーのクレジットに5を追加する簡単なボタンが欲しいのですが、"add"というルートを通して、/users/3/addがユーザーID = 3のクレジットに5を追加するようにします。
def add
@user = User.find(params[:id])
@user.credits += 5
redirect_to root_path
end
これが私のコントローラの関連部分です。 問題は、現在のUTC時間に基づいてユーザーのパスワードを再暗号化するbefore_saveコールバックがあるため、@user.saveを呼びたくないということです。 私は単に属性に5を追加し、コールバックを回避したいだけです。このような単純なことがこんなに難しいとは思いませんでした。
EDITです。
コールバックを:before_createに変更しました。 以下は新しいコントローラのコードです(関連する部分)。
def add
@user = User.find(params[:id])
@user.add_credits(5)
@user.save
flash[:success] = "Credits added!"
redirect_to root_path
end
そして、これがモデル内の私のコードです。
def add_credits(num)
self.credits = num
end
EDIT 2:
OK、それは "EDIT" の変更を機能させないバリデーションの問題でした。
どのように解決するのですか?
Rails 3.1導入
update_column
と同じです。
update_attribute
と同じですが、バリデーションやコールバックのトリガーがありません。
http://apidock.com/rails/ActiveRecord/Persistence/update_column
関連
-
[解決済み】警告:定数 ::Fixnum は非推奨 新しいモデルを生成するとき
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み] 新規ユーザー作成時に ActiveModel::ForbiddenAttributesError が発生する。
-
[解決済み] Rubyの文字列から日付への変換
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] DestroyとDeleteの違い
-
[解決済み] Herokuの問題 : あなたが探しているページは存在しません。
-
[解決済み] rails consoleを起動するとRailsのイニシャライザーが呼ばれる?
-
[解決済み] 属性とカラムの違いは何ですか?
-
[解決済み] Rails update_attributes without save?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】なぜRuby on Railsは、http://localhost:3000 の代わりに http://0.0.0.0:3000 を使用するのですか?
-
[解決済み] Railsサーバーがポートはすでに使用されていると言う、そのプロセスを殺すにはどうすればよいですか?
-
[解決済み] Rubyの文字列から日付への変換
-
[解決済み] Mac OS Xにhomebrewがインストールされているかどうかを確認する方法
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] DestroyとDeleteの違い
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] RubyとRailsの "Date.today "フォーマット
-
[解決済み] Railsでグループとカウント
-
[解決済み] RSpecとCucumberの違いは何ですか?[クローズド]