谁能告诉我为什么id和category_id总是在Rails中切换?我快疯了!控制台说它是正确的,但当我得到一个错误时,它显示params改变了它。下面是我的控制器:
class ArticlesController < ApplicationController
def new
@article = Article.new
@category = Category.find(params[:category_id])
end
def create
@article = Article.new(articles_params)
@category = Category.find(params[:category_id])
# binding.pry
@article.category_id = @category.id
binding.pry
if @article.save
redirect_to category_path(@category)
else
render :new
end
end
def edit
@category = Category.find(params[:category_id])
@article = Article.find(params[:id])
end
def update
@article = Article.find(params[:id])
@category = Category.find(params[:category_id])
if @article.update(articles_params)
redirect_to category_path(@category)
else
render :edit
end
end
def destroy
# binding.pry
@article = Article.find(params[:id])
@article.destroy
redirect_to category_path(@category)
end
private
def articles_params
params.require(:article).permit(:title, :body)
end
end


发布于 2016-07-26 09:51:55
一切看起来都很好。
下面是截图中的请求参数:
{
"id" : 1,
"category_id" : 2
}您要在您的文章控制器的上下文中查找id 1。1引用id为1的文章。同时,您正在寻找id为2 (category_id 2)的Category。
Category.find(params[:category_id])错误是说它找不到id为2的Category对象。
这2个来自您的请求。如果有什么地方出了问题,那就是在你的请求创建中。
https://stackoverflow.com/questions/38579785
复制相似问题