나는 내가 링크를 클릭하면레일 - 새로운 카테고리를 (ID와 범주를 찾을 수 없습니다)
def new
respond_to do |format|
format.html { new_or_edit }
format.js {
@category = Category.new
}
end
end
가 호출되는 알고 응용 프로그램을 만듭니다.
이로 인해 new_or_edit이 호출됩니다 (동일한 파일에서 정의 됨).
def new_or_edit
@categories = Category.find(:all)
@category = Category.find(params[:id])
@category.attributes = params[:category]
if request.post?
respond_to do |format|
format.html { save_category }
format.js do
@category.save
@article = Article.new
@article.categories << @category
return render(:partial => 'admin/content/categories')
end
end
return
end
render 'new'
end
는 몇 가지 테스트 후, 나는 "는 ID없이 카테고리를 찾을 수 없습니다"각 실행 오류가있는
@category = Category.find(params[:id])
에서 정지 것을 찾을 수 있습니다. Params는 그것을 인쇄 할 때 : id 해쉬를 가지고 있지 않습니다. 기본 : id 필드가 생성되기 전에 데이터베이스에 저장해야하기 때문입니다.
링크와 함께보기 코드를 추가하십시오. 링크에 "id"를 포함시키지 않았을 가능성이 큽니다. –
이 코드 "format.html {new_or_edit, : id => params [: id]}"및 Category.find (: id)를 사용해 보셨습니까? – stackoverflowery
동일한 작업 내에서 새 작업, 편집 및 업데이트를 처리하려고합니다. 규칙에 따라 객체를 인스턴스화하기 때문에 새로운 액션의 라우팅에는 id 매개 변수가 포함되지 않습니다. 편집 및 업데이트 작업은 기존 레코드를 편집/업데이트하기 때문에 id 매개 변수를 사용합니다. 별도의 새 작업, 편집 작업 및 업데이트 작업을 설정해야합니다. – James