源码:https://github.com/runup520/blog_three 环境:ubuntu13.04 ruby1.9.3 rails3.2.13 sqlite3 使用了 sunspot 全文检索,所以可能要用到语句:rake sunspot:solr:start
写了一个博客项目,想在文章评论不满足要求的情况下,,返回该页面,并且显示哪些错误。
报错原因:undefined method `errors' for nil:NilClass 就是说可能这个@comment没有传入进来。我在 articles_controller.rb 中添加了@comment的变量,
@article = Article.find(params[:id])
@comment = @article.comments.find_by_id(params[:id])
这两句代码是否有错呢? 前台显示用了 partial, 代码如下所示:
<section>
<%=@comment%>
<% if @comment.errors.any? %>
<div id="error_explanation">
<div class="alert alert-error">
The form contains <%= pluralize(@comment.errors.count, "error") %>.
</div>
<ul>
<% @comment.errors.full_messages.each do |msg| %>
<li># <%= msg %></li>
<li># <%[email protected] %></li>
<% end %>
</ul>
</div>
<% end %>
</section>
请教原因。 我把这些代码去掉之后重新调教可以运行的项目如下 :https://github.com/runup520/blog_fourth
还有我对
@article = Article.find(params[:id])
@comment = @article.comments.find_by_id(params[:id])
params 里面的东西为什么这么些,理解的不是很透彻,求一些材料指点,除了官方网站提供的。