我只是遵循以下教程并且效果很好。 http://www.communityguides.eu/articles/6
然而,有一件事他对我很难,那就是编辑。
我打电话给我的link_to编辑已关注
<%= link_to 'Edit', edit_article_comment_path(@article, comment) %>
然后将我带到有错误的页面并且不确定原因。
NoMethodError in Comments#edit
Showing /home/jean/rail/voyxe/app/views/comments/_form.html.erb where line #1 raised:
undefined method `comment_path' for #<#<Class:0xa8f2410>:0xb65924f8>
Extracted source (around line #1):
1: <%= form_for(@comment) do |f| %>
2: <% if @comment.errors.any? %>
3: <div id="error_explanation">
4: <h2><%= pluralize(@comment.errors.count, "error") %> prohibited this comment from being saved:</h2>
现在这里是评论编辑中的表格
<%= form_for(@comment) do |f| %>
<% if @comment.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@comment.errors.count, "error") %> prohibited this comment from being saved:</h2>
<ul>
<% @comment.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
这是控制器 文章控制器显示
@article = Article.find(params[:id])
@comments = @article.comments.find(:all, :order => 'created_at DESC')
评论控制器编辑
def edit
@comment = Comment.find(params[:id])
end
答案 0 :(得分:1)
看起来comment
是嵌套资源,因此您需要指定包含article
的{{1}}。例如:
comment
<%= form_for [@article, @comment] do |f| %>
是未定义的方法,因为没有路由在顶层公开评论。它有时有助于运行comment_path
以查看可用的路线。
更新:
您关联的文章仅提供rake routes
和create
操作以供评论。如果您需要支持编辑操作,则需要通过更改以下内容来修改路径:
delete
为:
resources :comments, :only => [:create, :destroy]
您还需要实现编辑和更新操作 - 按惯例编辑将显示表单,更新将处理表单提交。您还需要确保编辑视图中的resources :comments, :only => [:create, :destroy, :edit, :update]
可用。