Pins#show中的NoMethodError

时间:2015-10-08 03:14:13

标签: ruby-on-rails ruby

我正在建立一个博客网站,我正在努力添加评论部分。我安装了commontator gem并按照步骤操作。我的用户模型中有acts_as_commontator。我的图钉模型中acts_as_commontable。我的别针中显示<%= commontator_thread(@commontable) %>

我收到NoMethodError。当我在模型中使用该方法时,我不明白为什么它不理解我的方法调用。

我的Pin show.html.erb

<div class="row">
  <div class="col-md-offset-2 col-md-8">
   <div class="panel panel-default">
    <div class="panel-heading center">
     <%= image_tag @pin.image.url(:medium) %>
    </div>
     <div class="panel-body">
      <p><%= @pin.description %></p>
      <p><strong><%= @pin.user.name if @pin.user %></strong></p>

      <% if @pin.user == current_user %>
      <%= link_to 'Edit', edit_pin_path(@pin) %>
      <% end %>
     </div>
    </div>
    <%= commontator_thread(@commontable) %>
  </div>
 </div>

</div>

我的模特Pin.erb

class Pin < ActiveRecord::Base
belongs_to :user
has_attached_file :image, :styles => { :medium => "300x300>", :thumb =>          "100x100>" }
validates_attachment_content_type :image, :content_type => ["image/jpg",    "image/jpeg", "image/png", "image/gif"]
validates :image, presence: true
acts_as_commontable
end

我的模特User.erb

class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
 devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

 has_many :pins

 validates :name, presence: true
acts_as_commontator
end

1 个答案:

答案 0 :(得分:0)

最常见的问题是你的@commontable变量是nil,然后你得到NoM​​ethodError,它会得到一个:id。

检查@commontable是否为零也尝试使用@pin更改@commontable,因为他没有在编辑路径上抛出任何错误。