레일스는 created_at 및 updated_at와 같은 열의 값을 자동으로 삽입합니다. 더 많은 열을 업데이트하는 방식으로 레일을 구성 할 수 있습니까? 예를 들어, 모든 테이블에 현재 사용자 값을 보유한 사용자라는 열이 있습니다. 모든 데이터베이스 변경에 대해 기본 사용자를 삽입 할 수 있습니까?레일을 사용하여 테이블에 기본값 삽입
0
A
답변
2
질문에 오해하지 않는 한, 모델에서 before_save 함수를 사용해 볼 수 있습니다.
before_save :defaults
def defaults
#some stuff to set your defaults
end
1
예, 모델에서 before_filter를 사용할 수 있습니다.
before_update :set_value
def set_value
self.value = "hello"
end
0
당신은 데이터베이스에 객체를 저장하기 전에 같은 상태를 변경할 때 논리를 트리거하기 위해 액티브 콜백을 사용할 수 있습니다. created_at 및 updated_at 열은 객체가 만들어 지거나 (before_create) 업데이트되거나 (before_save) 자동으로 업데이트됩니다. ActiveRecord :: Callbacks 네임 스페이스에 정의 된 클래스 메서드를 사용하여 자체 콜백을 정의 할 수 있습니다. 특별히 업데이트, 생성, 또는 기록을 삭제 한 사용자를 기록하고자하는 경우 예는
# app/models/example.rb
class Example < ActiveRecord::Base
before_save :do_something
def do_something
self.value = value
end
end
것, 당신은 몇 가지 작업을 저장하고 자동으로 사용자를 기록 Userstamps 레일 플러그인을 사용할 수 있습니다. 이 플러그인은 https://github.com/delynn/userstamp
# app/models/example.rb
class Example < ActiveRecord::Base
model_stamper
end
# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
include Userstamp
end
당신은 사용자 작업을 기록 할에 각 모델 위에 userstamps 열을 추가해야합니다
에 있습니다.
는 액티브 콜백에더 많은 정보는 여기에서 찾을 수 있습니다 : 타임 스탬프에 http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
정보는 여기에서 찾을 수 있습니다 : 액티브 타임 스탬프 : 더 읽기에 http://api.rubyonrails.org/classes/ActiveRecord/Timestamp.html
관련 문제
- 1. 삽입 기본값
- 2. 당신이 테이블에 기본 값을 삽입 할 때 테이블 기본값
- 3. AccessDataSource를 사용하여 두 테이블에 삽입
- 4. 테이블에 셀 삽입?
- 5. 여러 테이블에 삽입
- 6. ID 열이있는 테이블에 삽입
- 7. jdbc로 여러 테이블에 삽입
- 8. LINQ를 사용하여 단일 쿼리로 두 테이블에 삽입
- 9. EnterpriseLibrary를 사용하여 SQL 테이블에 삽입 하시겠습니까?
- 10. 고유 키를 사용하여 XML 테이블에 레코드 삽입
- 11. Zend를 사용하여 기본 키가없는 테이블에 삽입
- 12. ODP.Net을 사용하여 Oracle 테이블에 레코드 배열 삽입
- 13. SQL 두 테이블에 삽입
- 14. SQlite의 다른 테이블에 삽입
- 15. 레일을 사용하여 송장 생성
- 16. 날짜가 mysql 테이블에 삽입
- 17. SQL 테이블에 데이터 삽입
- 18. ID 열이있는 테이블에 삽입
- 19. 삽입 테이블에 대한 트리거
- 20. SQL 테이블에 데이터 삽입
- 21. 관련 테이블에 SQL 삽입
- 22. 카운트 결과를 테이블에 삽입
- 23. mysql 테이블에 다중 삽입
- 24. 배열에서 테이블에 삽입
- 25. 테이블에 여러 행 삽입 - 액세스
- 26. CodeIgniter에서 조인 된 테이블에 삽입
- 27. mysql을 사용하여 두 번째 테이블 참조를 사용하여 테이블에 데이터 삽입
- 28. 현재 날짜로 기본값 삽입 + MySQL에서 30 일
- 29. mySQL - 세 개의 테이블에 삽입
- 30. 외래 키가있는 테이블에 대량 삽입
을, 당신이 가진 모든 자원을 연결하려는 것으로 보인다 현재 사용자. current_user 아래의 모든 자원을 조사하지 마십시오. 그런 다음 위와 같은 필터를 사용할 필요가 없습니까? – amaseuk