0

私はあなたが見ているように私は単に各記事の表示ページにコメントを付けようとしています。問題は、コメントコントローラからのそのスラッグを使用して記事を見つけることができず、問題がどこにあるのかわからないことです。frindly_idを使ってスラッグでオブジェクトを見つけることができませんIDなしで記事を見つけることができません

コメントコントローラ

class CommentsController < ApplicationController 

    def create 
    @article = Article.friendly.find(params[:slug]) 
    @comment = @article.comments.create(comments_params) 
    redirect_to @article_path(@article) 
    end 

private 

    def comments_params 
    params.require(:comment).permit(:name, :body) 
    end 
end 

条コントローラ

class ArticlesController < ApplicationController 
before_filter :authenticate_user!, except: [:index, :show] 



def index 
    @Articles = Article.all 
    end 

    def new 
    @article = Article.new 
    end 

    def create 
    @article = Article.new(article_params) 
     if @article.save 
     redirect_to @article 
     else 
     render 'new' 
     end 
    end 

    def show 
     find_article 
    end 

    def edit 
     find_article 
    end 

    def update 
     @article = Article.find_by_slug(params[:id]) 
     if @article.update(article_params) 
     redirect_to @article 
     else 
     render 'edit' 
     end 
    end 

    def destroy 
     @article = Article.find(params[:id]) 
     @article.destroy 
     redirect_to root_path 
    end 

    private 

    def find_article 
     @article = Article.friendly.find(params[:id]) 
    end 

    def article_params 
     params.require(:article).permit(:title, :content, :slug) 
    end 
    end 

コメントフォーム

<%= form_for ([@article, @article.comments.build]) do |f| %> 
    <%= f.label :Name %> 
    <%= f.text_field :Name %> 
<br> 
    <%= f.label :Body %> 
    <%= f.text_area :Body %> 
<br> 
    <%= f.submit %> 
<% end %> 

コメント

<p><%= comment.content %><p/> 
私はそれがこのようにする必要があります推測

条モデル

class Article < ActiveRecord::Base 
    has_many :comments 
    extend FriendlyId 
    friendly_id :title, use: [:slugged, :finders] 
end 

コメントモデル

class Comment < ActiveRecord::Base 
    belongs_to :article 
end 

ルート

Rails.application.routes.draw do devise_for :users root 'articles#index' resources :articles do resources :comments end end
+0

は、あなたが投稿できます'Article'と' Comment'モデルのコードは? – nqngo

+0

@mqngo彼らは今あります:) – Faisal

+0

routes.rbを共有できますか? – oreoluwa

答えて

0

class CommentsController < ApplicationController 

    def create 
    @article = Article.friendly.find(params[:article_id]) 
    @comment = @article.comments.create(comments_params) 
    redirect_to article_path(@article) 
    end 

private 

    def comments_params 
    params.require(:comment).permit(:name, :body) 
    end 
end 
+0

私はそれが何かをしたと思う!それでもエラーは考えられますが、別のものがあります。 # のための未定義のメソッド 'content 'は意味しましたか? とその<%= comment.content%> – Faisal

+0

を指しているとコメントの例を投稿できますか?コメント: "コメント" ORDER BY "comments"。 "id" DESC LIMIT 1 =>コメント<コメント>最初に – oreoluwa

+0

2.3.1:001> Comment.last コメントid:1、名前:nil、本文:nil、article_id:1、created_at: "2016-06-29 00:11:59"、updated_at: "2016-06-29 00:11:59"> 2.3.1 :002> – Faisal

関連する問題