2016-07-26 15 views
0

誰かがidとcategory_idがRailsで切り替えられているのをなぜ教えてくれますか?気がおかしくなりそうだ!コンソールには正しく表示されていますが、エラーが表示されたときにparamsがスイッチを切り替えることが示されています。以下、この私のコントローラ:Ruby on Rails @ article.idと@article.category_id切り替えを続ける

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 

enter image description here

enter image description here

答えて

2

すべてが正常に見えます。

はあなたのスクリーンショットからのリクエストパラメータに下記をご覧:

{ 
    "id" : 1, 
    "category_id" : 2 
} 

あなたはあなたの記事コントローラのコンテキストでid 1を探しています。 1は、IDが1の記事を指します。 一方、IDが2(category_id 2)のカテゴリを探しています。

Category.find(params[:category_id]) 

エラーは、それがID 2.

2リクエストから来ているとのCategoryオブジェクトを見つけることができないと言っています。何か間違っていると、それはあなたのリクエスト作成にあります。

+0

はい、実際は私の最初のカテゴリと私の2番目の記事です。情報が正しく私のレールコンソールに印刷されています。 –

+0

私が言ったように:問題は要求である。間違ったパラメータを渡します。質問にあなたの要求の建物を含めることができますか? – Antzi

+0

あなたはどこにいます、私はそれを理解しました。ありがとうございました! –

関連する問題