[Rails]ActiveRecord에서 데이터를 업데이트할 때 각 열이 업데이트되었는지 알고 싶습니다
개시하다
제목과 같다.
다음 응용 프로그램은 채팅방에서 '제목' 과 '방 설명' 과 '분류' 를 설정할 수 있다
제목이 바뀌었을 때만 채팅방에 알리고 싶어요.
변경 전의 매개 변수를 얻거나 변경 여부를 판정하는 방법이 있다면 기쁩니다.
이루어지다
액티브 레코드 씨는'주명 체인지드'인가 봐요.이런 보조 방법이 있다고 들었는데...
room_controller def update
if @room.update(room_update_params)
if @room.title_changed? # ココ。title_cahged?がtrueであれば自動メッセージを送るようにしたつもり。
Message.create(room_id: @room.id, user_id: current_user.id, content: "*自動投稿* タイトルを「#{@room.title}」に編集しました")
end
redirect_to room_path(@room.id)
else
render :edit
end
end
이런 느낌으로 실시해 보았지만 실패했다.
봤어Giithub의 rails 뭔가 업데이트된 것 같아.
즉
열 이름changed?ActiveRecord의 콜백을 사용하여 처리 구분 가능
콜백 요약
저장 전에オブジェクト.will_save_change_to_カラム名
저장 이후의 상황オブジェクト.saved_change_to_{カラム名}?
이렇게 바꿀 필요가 있을 것 같아요.
재실현
room_controller.rb def update
if @room.update(room_update_params)
if @room.title_updated?
Message.create(room_id: @room.id, user_id: current_user.id, content: "*自動投稿* タイトルを「#{@room.title}」に編集しました")
end
redirect_to room_path(@room.id)
else
render :edit
end
end
컨트롤러로 "saved change to"또는 "will save change to"라고 부르면 좋지 않으니까
모델 측면에서'갱신 여부를 판단하는 실례 방법'을 만들었다.
room.rb def title_updated?
if self.saved_change_to_title?
return true
else
return false
end
end
이렇게 하면 제목을 편집할 때만 정보를 발표할 수 있다.
끝말
이번에 rails의 원본 코드를 처음 봤는데 다시 보면 수확이 있을 거예요.
나는 시간을 내서 다시 보고 싶다.
끝.
Reference
이 문제에 관하여([Rails]ActiveRecord에서 데이터를 업데이트할 때 각 열이 업데이트되었는지 알고 싶습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gakinchoy7/items/deb7a18bee669591574e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
액티브 레코드 씨는'주명 체인지드'인가 봐요.이런 보조 방법이 있다고 들었는데...
room_controller
def update
if @room.update(room_update_params)
if @room.title_changed? # ココ。title_cahged?がtrueであれば自動メッセージを送るようにしたつもり。
Message.create(room_id: @room.id, user_id: current_user.id, content: "*自動投稿* タイトルを「#{@room.title}」に編集しました")
end
redirect_to room_path(@room.id)
else
render :edit
end
end
이런 느낌으로 실시해 보았지만 실패했다.봤어Giithub의 rails 뭔가 업데이트된 것 같아.
즉
열 이름changed?ActiveRecord의 콜백을 사용하여 처리 구분 가능
콜백 요약
저장 전에オブジェクト.will_save_change_to_カラム名
저장 이후의 상황オブジェクト.saved_change_to_{カラム名}?
이렇게 바꿀 필요가 있을 것 같아요.
재실현
room_controller.rb def update
if @room.update(room_update_params)
if @room.title_updated?
Message.create(room_id: @room.id, user_id: current_user.id, content: "*自動投稿* タイトルを「#{@room.title}」に編集しました")
end
redirect_to room_path(@room.id)
else
render :edit
end
end
컨트롤러로 "saved change to"또는 "will save change to"라고 부르면 좋지 않으니까
모델 측면에서'갱신 여부를 판단하는 실례 방법'을 만들었다.
room.rb def title_updated?
if self.saved_change_to_title?
return true
else
return false
end
end
이렇게 하면 제목을 편집할 때만 정보를 발표할 수 있다.
끝말
이번에 rails의 원본 코드를 처음 봤는데 다시 보면 수확이 있을 거예요.
나는 시간을 내서 다시 보고 싶다.
끝.
Reference
이 문제에 관하여([Rails]ActiveRecord에서 데이터를 업데이트할 때 각 열이 업데이트되었는지 알고 싶습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gakinchoy7/items/deb7a18bee669591574e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
オブジェクト.will_save_change_to_カラム名
オブジェクト.saved_change_to_{カラム名}?
room_controller.rb
def update
if @room.update(room_update_params)
if @room.title_updated?
Message.create(room_id: @room.id, user_id: current_user.id, content: "*自動投稿* タイトルを「#{@room.title}」に編集しました")
end
redirect_to room_path(@room.id)
else
render :edit
end
end
컨트롤러로 "saved change to"또는 "will save change to"라고 부르면 좋지 않으니까모델 측면에서'갱신 여부를 판단하는 실례 방법'을 만들었다.
room.rb
def title_updated?
if self.saved_change_to_title?
return true
else
return false
end
end
이렇게 하면 제목을 편집할 때만 정보를 발표할 수 있다.끝말
이번에 rails의 원본 코드를 처음 봤는데 다시 보면 수확이 있을 거예요.
나는 시간을 내서 다시 보고 싶다.
끝.
Reference
이 문제에 관하여([Rails]ActiveRecord에서 데이터를 업데이트할 때 각 열이 업데이트되었는지 알고 싶습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gakinchoy7/items/deb7a18bee669591574e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Rails]ActiveRecord에서 데이터를 업데이트할 때 각 열이 업데이트되었는지 알고 싶습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gakinchoy7/items/deb7a18bee669591574e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)