2008-10-21 6 views
5

정말 간단한 레일 질문을 가지고 있지만 어디서나 대답을 찾을 수 없습니다. 나는 레일즈 1.2와 레일즈 2.1의 튜토리얼을 따라 나에게 몇 가지 문제점이 있다고 생각한다. 어쨌든 ..Rails를 무시하고 렌더링 redirect_to

나는 블로그 시스템을 작성 중이며 주석 비트를 구현 중입니다. 일단 스크립트/콘솔을 사용하여 작성한 주석은 잘 표시되지만 코멘트 양식 자체를 작동시키는 것은 어려운 일입니다. posts_controller.rb에서

나는

def comment 
    Post.find(params[:id]).comments.create(params[:comment]) 
    flash[:notice] = "Added comment" 
    #render :action => show 
    redirect_to :action => show 
    end 

및 show.html.erb (뷰) 내가 가지고있는에있는

<%= form_tag :action => "comment", :id => @post %> 
    <%= text_area "comment", "body" %><br> 
    <%= submit_tag "Post Comment" %> 

나는 그것이 URB로 이동하려고 시도 양식을 제출 /posts/comment/1은 분명히 틀렸고 템플릿을 찾을 수 없다고 불평합니다. 분명히 나는 ​​거기에 새로운 코멘트가있는 게시물의 쇼 페이지를 다시 표시하기를 원하기 때문에 쇼 액션으로 리디렉션하도록했기 때문에 템플릿을 원하지 않습니다.

나는 주석 처리 된 행 (render : action => show)과 redirect_to 행을 모두 시도했지만 아무 것도하지 않는 것 같습니다.

나는 단순한 무엇인가 놓치고 있다고 확신하지만, 무엇입니까?

답변

8

show 주위에 따옴표가있는 redirect_to :action => 'show', :id => params[:id]이 있습니까?

-1

예, 오래된 레일 스타일을 사용합니다. 새로운

뭔가 :

form_for :comment, :url => { :post_id => @post } do |f| 
    f.text_area :body 
    submit_tag "Post" 
    end 

당신은 더 나은 튜토리얼 게시물과 댓글, 구글 검색을위한 자원을 사용하거나 레일 1.2.6를 설치할 수 있습니다

gem install -v 1.2.6 rails 
0

레일 2.1 "편안하고 자원을"포함한다. show은 모든 레일 컨트롤러가 사용하는 미리 정의 된 REST 동작 중 하나의 이름입니다.

레일즈는 배후에서 몇 가지 마술을합니다 : "show는 특정 ID로이 특정 요소 표시"와 같습니다. 소리가 나는 것처럼 들리네. ID는 기본값이 "1"일 것입니다. 따라서 당신이 렌더링에서보고있는 생성 된 URL은 다음 작업 및 템플릿을 사용하고의 레일 2.1 방법

전화 : - 의견

  • create의 전체 목록을 표시

    • index가 - 새 덧글 추가
    • show - (전체 목록이 아닌) 특정 설명 만 표시합니다. 이게 당신이 원하는 것 같지 않지만, 레일 안의 "마술"은 이것을 기본으로합니다.

    new (기존 코멘트의 편집을 할 쇼보기) edit을 (쇼의 새로운 주석을 입력보기) update (핸들 업데이트 제출) 및 destroy (대만족)에 대한 작업이있다, 그러나 그것은 '아무튼 이 예제에서 사용하는 것처럼 보이지 않습니다.

    자습서에 대한 링크가 있습니까? Rails 2.1 스타일로 포팅하기에는 너무 어렵지 않을 것입니다.

  • +0

    이 자습서는 http://www.sapphiresteel.com/How-To-Create-A-Ruby-On-Rails-Blog,168에 있습니다. 나는 또한이 문제에 관한 또 다른 질문을 올렸다. http://stackoverflow.com/questions/224669/correct-rails-21-way-of-doing-things – robintw

    관련 문제