繁体   English   中英

在Rails博客中使用ruby编辑评论时出现路由错误

[英]Routing Error while editing comments in ruby on rails blog

在我决定为评论添加编辑功能之前,我的应用程序运行良好。 在此之前,我可以查看特定文章,但现在不可以。 我在评论视图中添加了edit.html.erb页面,并将_comment_form.html.erb作为局部页面。现在,我无法访问第12条(例如),当我尝试访问时,它说No route matches {:action=>"edit", :controller=>"comments", :article_id=>#<Article id: 21, title: "good for health", body: "uby on Rails 3 Model Data Validation\\r\\nRails Model D...", created_at: "2013-04-14 15:14:19", updated_at: "2013-04-24 05:51:20", user_id: 1, impressions_count: 7>, :id=>#<Comment id: nil, content: nil, user_id: nil, article_id: 21, created_at: nil, updated_at: nil>}

基本上,我试图在文章/显示页面上实现评论编辑功能。 为此,我在评论视图下添加了edit.html.erb。 但是现在什么都没有用。 任何建议都会令人赞赏。

comments_controller.rb

class CommentsController < ApplicationController
     before_filter :user_signed_in, except: [:create]
    def new
      @comment = Comment.new
    end

    def create
      @article = Article.find(params[:article_id])
      @comment = @article.comments.build(params[:comment])
      @comment.user_id = current_user.id
      @comment.save
        flash[:success] = "Comment created!"
        redirect_to article_path(@comment.article)
    end

    def edit
    @comment = Comment.find(params[:id])
    end

    def update
     @comment = Comment.find(params[:id])
     @article = @comment.article
     respond_to do |format|
      if @comment.update_attributes(params[:comment])
        redirect_to @article_path(@article)
      else
       render :action => "edit" 
      end
    end

    def destroy
     @comment = Comment.find(params[:id])
    @article = Article.find(params[:article_id])
    @comment.destroy
       redirect_to @article_path(@artilce) 
    end

end

评论/edit.html.erb

<h3>Editing comment</h3>
<%= render :partial => 'comment_form' %>

comments / _comment_form.html.erb

<%= form_for ([@article, @article.comments.build]), :required => true do |f| %>
 <%= f.hidden_field :article_id %> 
 <%= f.text_area :content, :style => "width:727px; height:100px; border: 1px solid #999999;margin-top:80px; background-color:#FFFFFF;margin-left:-33px" %>
    <div class="actions">
    <%= f.submit "Add Comment", :style => "margin-right:20px; margin-left:560px; background-color:#66C9Ef; color:#FFFFFF; border: 0px solid #82b548; border-radius: 3px 3px 3px 3px; font-size: 1.3rem;" %>
  </div>
<% end %>

comments / comment.html.erb(在这里,我提供了编辑文章评论的链接)

<% if @article.comments.count  >= 1 %>
  <div style="border: px solid #66c9ee;border-radius: 0px 0px 0px 0px;margin: 10px -30px 15px; padding:     10px 15px 25px; background: none repeat scroll 0 0 #F2F2F2; width:700px; font-size: 1.2em;border-bottom: 0px solid #DDDDDD;">
      <%= comment.content %>
         <div id="tabula"> 
            <ul id="tabula">
             <li> <div style="color: #0077CC;margin-rigth:200px; font-size: 1.0em;margin-top:4px;background-color:#;"> <%= comment.user.username if comment.user %></div></li>
             <li> <div style="color: #0077CC; background-color:; margin-top:4px; margin-left:25px;"> <p> <%= time_ago_in_words(comment.created_at.in_time_zone("Asia/Calcutta"))  unless comment.created_at.nil? %>  </p></div></li>
             <li> <div style="color: #0077CC; background-color:; margin-top:4px; margin-left:25px;"> <%= link_to "edit", edit_article_comment_path(@article,comment) %> </div></li>
            </ul>
           </div>
          </div>
    <% else %>
        <div style="color:#0077CC;margin-left:25px;font-size:1.4em;"> be first to comment</div>
  <% end %>

route.rb(不完整)

        articles GET    /articles(.:format)                               articles#index
                 POST   /articles(.:format)                               articles#create
     new_article GET    /articles/new(.:format)                           articles#new
    edit_article GET    /articles/:id/edit(.:format)                      articles#edit
         article GET    /articles/:id(.:format)                           articles#show
                 PUT    /articles/:id(.:format)                           articles#update
                 DELETE /articles/:id(.:format)                           articles#destroy
 dashboard_index GET    /dashboard(.:format)                              dashboard#index
                 POST   /dashboard(.:format)                              dashboard#create
   new_dashboard GET    /dashboard/new(.:format)                          dashboard#new
  edit_dashboard GET    /dashboard/:id/edit(.:format)                     dashboard#edit
       dashboard GET    /dashboard/:id(.:format)                          dashboard#show
                 PUT    /dashboard/:id(.:format)                          dashboard#update
                 DELETE /dashboard/:id(.:format)                          dashboard#destroy


               tags GET    /tags(.:format)                                   tags#index
                     POST   /tags(.:format)                                   tags#create
             new_tag GET    /tags/new(.:format)                               tags#new
            edit_tag GET    /tags/:id/edit(.:format)                          tags#edit
                 tag GET    /tags/:id(.:format)                               tags#show
                     PUT    /tags/:id(.:format)                               tags#update
                     DELETE /tags/:id(.:format)                               tags#destroy
    article_comments GET    /articles/:article_id/comments(.:format)          comments#index
                     POST   /articles/:article_id/comments(.:format)          comments#create
 new_article_comment GET    /articles/:article_id/comments/new(.:format)      comments#new
edit_article_comment GET    /articles/:article_id/comments/:id/edit(.:format) comments#edit
     article_comment GET    /articles/:article_id/comments/:id(.:format)      comments#show
                     PUT    /articles/:article_id/comments/:id(.:format)      comments#update
                     DELETE /articles/:article_id/comments/:id(.:format)      comments#destroy
                     GET    /articles(.:format)                               articles#index
                     POST   /articles(.:format)                               articles#create
                     GET    /articles/new(.:format)                           articles#new
                     GET    /articles/:id/edit(.:format)                      articles#edit
                     GET    /articles/:id(.:format)                           articles#show
                     PUT    /articles/:id(.:format)                           articles#update
                     DELETE /articles/:id(.:format)                           articles#destroy

routes.rb

Mau::Application.routes.draw do
  devise_for :users
  root :to => 'articles#index'
  resources :articles
  resources :dashboard
  resources :tags
  resources :articles do
  resources :comments
end
end

注意:当我访问没有评论的文章时,它可以工作,但是当我尝试访问具有评论的文章时,它显示上述路由错误。 任何建议都会令人赞赏。

我的排名太低,无法发表评论,但是请发布您的路线文件,但我认为这里可能存在问题/articles/:article_id/comments

您在编辑中的评论没有ID。 它是一个新鲜的变量吗? 请朝那个方向进行调查

  1. 尝试注释编辑链接,并检查它是否有效。如果有效,则问题出在编辑注释方法中。

  2. 您的路径应为edit_article_comment_path(article_id,comment_id),因为comment是一个嵌套的控制器,因此它将始终需要商品ID才能显示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM