我正在学习rails教程,并遇到错误。未定义的方法销毁为零:NilClass - in Rails教程
$ bundle exec rspec spec
Failure/Error: expect { click_link "delete" }.should change(Micropost, :count).by(-1)
NoMethodError:
undefined method `destroy' for nil:NilClass
有两个错误,无造成一个未定义的方法“destory”的同样的问题:NilClass
微柱控制器
class MicropostsController < ApplicationController
before_filter :signed_in_user, only: [:create, :destory]
before_filter :correct_user, only: :destory
def create
@micropost = current_user.microposts.build(params[:micropost])
if @micropost.save
flash[:success] = "Micropost created!"
redirect_to root_path
else
@feed_items = []
render 'static_pages/home'
end
end
def destroy
@micropost.destroy
redirect_to root_path
end
private
def correct_user
@micropost = current_user.microposts.find_by_id(params[:id])
redirect_to root_path if @micropost.nil?
end
end
我想这是所有的信息需要帮助我弄清楚这个问题。无论如何,这里还有一些。
相关问题:Rails request spec not working - noMethodError
我想他们的解决方案,但它并没有区别。
_feed_item.html.erb
<li id="<%= feed_item.id %>">
<%= link_to gravatar_for(feed_item.user), feed_item.user %>
<span class="user">
<%= link_to feed_item.user.name, feed_item.user %>
</span>
<span class="content"><%= feed_item.content %></span>
<span class="timestamp">
Posted <%= time_ago_in_words(feed_item.created_at) %> ago.
</span>
<% if current_user?(feed_item.user) %>
<%= link_to "delete", feed_item, method: :delete,
confirm: "You sure?",
title: feed_item.content %>
<% end %>
</li>
感谢
你的问题是什么? – sawa
如何解决我的代码与测试一起工作?我不知道为什么摧毁是未定义的 - 它应该在控制器 – Marcus