0

[acts_as_commentable_gem][1]ユーザーがピンをアップロードできるレールアプリがあります。ユーザーがピンにコメントできるようにするために使用したいのですが、ここに私の設定があります:

アプリ/モデル/pin.rb

class Pin < ActiveRecord::Base
    acts_as_commentable 
end

アプリ/コントローラー/pins_controller.rb

def show
   @pin.find params[:id]
   @comment = @pin.comments.new
end

アプリ/ビュー/ピン/show.html.erb

<%= form_tag "/pins/add_new_comment" do %>
    <%= hidden_field_tag "id", post.id %>
    <%= text_area_tag "comment[comment]" %>
    <%= submit_tag "Pin Comment" %>
    <% end %>

アプリ/モデル/コメント.rb

class Comment < ActiveRecord::Base

  include ActsAsCommentable::Comment

  belongs_to :commentable, :polymorphic => true

  default_scope -> { order('created_at ASC') }

  # NOTE: install the acts_as_votable plugin if you
  # want user to vote on the quality of comments.
  #acts_as_voteable

  # NOTE: Comments belong to a user
  belongs_to :user
end

アプリ/コントローラー/pin_controller.rb

def add_new_comment
    pin = Pin.find(params[:id])
    pin.comments << Pin.new(params[:comment])
    redirect_to :action => :show, :id => pin
end

最終的に私の設定/ルートに

get "/pins/add_new_comment" => "pins#add_new_comment", :as => "add_new_comment_to_pins", :via => [:pin]

しかし、ルーティング エラーが発生します。

PinsController:Class の未定義のローカル変数またはメソッド「acts_as_commentable」

このエラーがどこから来たのか本当にわかりません。何かアイデアはありますか?

4

1 に答える 1

0

よくわかりませんが、ルートは次のようであってはなりません

get "/pins/:id/add_new_comment" => "pins#add_new_comment", :as => "add_new_comment_to_pins"
于 2014-08-25T10:20:34.227 に答える