2012-06-19 2 views
1

많은 보드가있는 프로젝트에 대해 중첩 된 경로를 만들려고합니다.레일에 중첩 된 경로 3.2.3

먼저 나는 새 보드에 대한 링크를 만드는 오전 :

<%= link_to 'New Board', new_project_board_path(@project) %> 
난 그냥 편안 경로 중첩 routes.rb에서

:

resources :projects do 
    resources :boards 
end 

을 그리고 보드 컨트롤러에 나는 새를 적응

def new 
     @project = Project.find(params[:project_id]) 
     @board = @project.boards.new 

     respond_to do |format| 
      format.html # new.html.erb 
      format.json { render json: @board } 
     end 
    end 



def create 
    @project = Project.find(params[:project_id]) 
    @board = @project.boards.new(params[:board]) 

    respond_to do |format| 
     if @board.save 
     format.html { redirect_to @board, notice: 'Board was successfully created.' } 
     format.json { render json: @board, status: :created, location: @board } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @board.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

적어도 _form.html.erb도 다음과 같이 변경했습니다.

<%= form_for([@project, @board]) do |f| %> 

내가 버튼을 만들 보드 (그래서 새로운 액션이 실행됩니다)이 더 경로 일치를 말한다을 클릭하면 내 문제가 시작됩니다. 프로젝트의 ID를 더 이상 얻지 못하기 때문에 액션을 작성하는 것과 관련이 있다고 생각하십니까? 나는 정말로 무엇을 바꿀 지, 어디에서 어디로 갈지 모릅니다. 당신, 보드 자원 않습니다

+0

으로 변경하십시오. 실제 오류를 붙여 넣을 수 있습니까? – Justin

+0

경로가 [GET] "/ boards/39"와 일치하지 않습니다. – cruxi

+0

URL을 생성 한 후 URL이 적합하지 않습니다. 이전에 http : // localhost : 3000/projects/5/boards/new – cruxi

답변

1

은 오류가 여기

format.html { redirect_to @board, notice: 'Board was successfully created.' } 

당신은 비 중첩이없는 것 같다? 이 줄을

format.html { redirect_to [@project, @board], notice: 'Board was successfully created.' } 
+0

작동하는 것으로 보입니다. 정말 고맙습니다! – cruxi