내 사용자 로그인을 위해 Devise with Rails를 사용 중입니다. 그것은 모든 위대한 작품, 그러나, 나는 특정 리디렉션 작업을 얻을 수 없습니다.Rails 로그인 후 리다이렉트
나는 레일을 처음 사용하기 때문에 내가하는 일이 올바른 방법이 아닐 수 있습니다.
예를 들어, 사용자가 게시물을 좋아하도록 허용하고 있습니다. 그러나 그렇게하려면 로그인해야합니다. 나는 '같이'라는 내 컨트롤러에서 작업을 만든 컨트롤러하여 로그인 페이지가 표시되고 입력 한 유증 필터
before_filter :authenticate_user!, :except => [:index, :show]
있습니다. 일단 사용자가 로그인하면 내가 좋아하는 게시물로 다시 리디렉션하고 싶습니다. '좋아요'라는 작업이 호출되었습니다.
내 컨트롤러는 당연히 내가하지 하드 코드 경로가
def after_sign_in_path_for(resource)
#path to somewhere
end
after_sign_in_path_for 사용 할 수 있습니다하지만 난 위의 코드에서 그 세션 변수를 사용 아마도 호출 할 수 있습니다 읽었습니다
def like
@post = Post.find(params[:id])
@like = Like.new;
@like.user_id = current_user.id;
@like.post_id = params[:id];
respond_to do |format|
if @like.save
format.html { redirect_to @post, notice: 'You have like this post' }
format.json { head :no_content }
else
format.html { redirect_to @post, notice: 'Sorry you like was not saved }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
처럼 보인다 . Rails의 어느 부분에서 세션 변수를 쓸 수 있습니까? 컨트롤러 동작에서 너무 늦기 때문에 (예를 들어, 같은 동작을하기 전에 장치가 인계 받기 때문에) 뷰에서 설정하는 방법을 볼 수 없습니다.
또한 내 링크는
<%= link_to "Like", {:controller => :posts, :action => :like, :id => @post.id}, {:method => :post } %> |
PS 새로운 '포스트'를 작성, 사용 리디렉션처럼의 확인 즉 사용자가 로그인을 작동하고 새 게시물보기로 리디렉션됩니다 보인다.
도움과 팁을 크게 높이세요. 같은 행동은 특히 POST를 위해 설계 되었기 때문에
감사
답장을 보내 주셔서 감사합니다, 나는 그것을 'RESTful'방식으로하고 싶습니다, 그러나, 당신이 제안하고 내가 알고있는 비트를 변경했지만 그게 나에게 오류를주고있다 "ActiveRecord : : RecordNotFound in PostsController # show "- i 변경된 "자원 : 게시물 얻을 '같은', : on => : 컬렉션 끝"및 또한 얻을 link_to. – Dudedolf