Я пытаюсь создать форму комментариев на моей странице коллекции. Я немного ржавый с Rails, и я не знаю, почему эта форма не пытается создать комментарий, и вместо возвращения ошибкаRails ищет обновления, когда он должен быть создан.
Действие «обновление» не может быть найдено для CommentsController
Система комментариев работает в консоли.
Вот моя форма
<%= form_for [@commentable, @comment] do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.text_area :content %>
<%= f.submit "Comment", class: "btn btn-large btn" %>
<% end %>
Мой комментарий модель
class Comment < ActiveRecord::Base
belongs_to :commentable, polymorphic: true
belongs_to :user
end
Моя коллекция модель
class Collection < ActiveRecord::Base
has_many :comments, as: :commentable
end
Мой comments_controller
class CommentsController < ApplicationController
def create
@comment = @commentable.comments.new(comment_params)
if @comment.save
flash[:success] = 'Comment posted!'
redirect_to @commentable
else
flash[:notice] = "Error creating comment: #{@comment.errors}"
redirect_to @commentable
end
end
private
def comment_params
params.require(:comment).permit(:content, :commentable_type, :commentable_id, :user_id)
end
end
Мой collections_controller показать действие
def show
@collection = Collection.find(params[:id])
@commentable = @collection
@comments = @commentable.comments
@comment = Comment.new if user_signed_in?
end
опечатка @commentable в вашей форме :) – trosborn
Спасибо. Хорошее место. К сожалению, все не исправлено, но это, безусловно, сломает его, если он работает :) – Ossie