많은 보드가있는 프로젝트에 대해 중첩 된 경로를 만들려고합니다.레일에 중첩 된 경로 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를 더 이상 얻지 못하기 때문에 액션을 작성하는 것과 관련이 있다고 생각하십니까? 나는 정말로 무엇을 바꿀 지, 어디에서 어디로 갈지 모릅니다. 당신, 보드 자원 않습니다
으로 변경하십시오. 실제 오류를 붙여 넣을 수 있습니까? – Justin
경로가 [GET] "/ boards/39"와 일치하지 않습니다. – cruxi
URL을 생성 한 후 URL이 적합하지 않습니다. 이전에 http : // localhost : 3000/projects/5/boards/new – cruxi