私はあなたが見ているように私は単に各記事の表示ページにコメントを付けようとしています。問題は、コメントコントローラからのそのスラッグを使用して記事を見つけることができず、問題がどこにあるのかわからないことです。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
は、あなたが投稿できます'Article'と' Comment'モデルのコードは? – nqngo
@mqngo彼らは今あります:) – Faisal
routes.rbを共有できますか? – oreoluwa