0
처음으로 새 페이지 # (.../posts/new)를 사용자가 방문하면 타임 스탬프를 저장하고 싶습니다. 이 타임 스탬프를 데이터베이스의 게시물 테이블에 저장하십시오.레일 : 사용자가 "새"페이지를 방문하여 데이터베이스에 저장하는 경우 타임 스탬프 받기
내가 게시물 테이블에서 지금까지
- 했던 것은, 내가 추가 나는했습니다 내 posts_controller.rb에서 데이터 유형 타임 스탬프
- 이있는 열 이름 first_time_visit 마이그레이션했습니다 first_time_visit 특성을 @post로 초기화하고 Time.now로 설정합니다.
- "first_time_visit"특성을 이미 허용했습니다.
문제 :
- 새 게시물을 작성하고 저장 한 후 first_time_visit 열은 여전히 "무기 호"입니다.
내 post.rb 모델에서 :
def add_first_time_visit(time) self.first_time_visit = time end
내 posts_controller에서 내 posts_controller.rb
def new @post = Post.new(first_time_visit: Time.now) end def create @post = current_user.posts.build(post_params) if @post.save redirect_to posts_path, notice: "Post saved." else render 'new', notice: "Post could not be saved." end end ... private def post_params params.require(:post).permit(:description, :link, :first_time_visit) end
에서
는 또한 다른 해결책을 시도했습니다. rb :
def new
@post = Post.new
@post.add_first_time_visit(Time.now)
end
그러나이 솔루션은 또한 나에게 "무관"만을 제공합니다.
아휴, 너무 바보 같아요. 물론 숨겨진 필드가 작동했습니다. 감사합니다. <% = hidden_field : first_time_visit, value = Time.current %>을 양식에 추가했습니다. 그러나 두 번째 제안은 내가 원하는 방식으로 작동하지 않을 것 같아요? 사용자가/posts/new page를 방문하는 시간이 아니라 게시가 생성되는 시간을 추가하기 때문에? – OhDaeSu
두 번째 제안은 귀하의 경우에는 효과가 없을 것입니다. 답변에서 제거하십시오. –
'first_time_visit'을 세션에 저장하고'create' 액션에서 추출 할 수 있습니다. –