首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除Review路由

删除Review路由
EN

Stack Overflow用户
提问于 2016-11-17 21:30:39
回答 1查看 137关注 0票数 0

我相信我有一个路由问题:我有一个功能,允许用户留下对一个特定个人的审查。所以我有一个评论模型和一个个人模型。我正在设法删除对那个人的具体评论。

Routes.rb:

代码语言:javascript
复制
    resources :individuals do
      collection do
        get 'search'
      end
      collection do
        get 'schools'
      end
      member do
        post 'flag', :individuals
      end
      resources :reviews  do
        member do
          post 'flag', 'vote', 'downvote',  :review
        end
        resources :reviews, only: [:index, :create]


      end

  end

  resources :reviews, only: [:destroy, :update, :edit]

因此,我相信,如果我做对了,我将嵌套审查索引和创建:individuals/1/reviews/2,而不是为操作销毁,更新和编辑:reviews/1/edit

主计长:

代码语言:javascript
复制
 def destroy
    @review.destroy
    respond_to do |format|
      format.html { redirect_to @professor, notice: 'Review was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

View.html.rb:

代码语言:javascript
复制
  <% if @review.blank? %>
  Nothing to review!
  <% else %>
  <div class="list-group">
    <ul class="list-unstyled">
    <% @review.each do |review| %>
        <li class="list-group-item">  <%= review.comment %> Review Flagged:
          <%= pluralize(review.flag, 'time') %>.   <%= link_to 'View', professor_review_path(review.professor, review) %>
           <%= link_to 'Edit', edit_individual_review_path(review.individual, review) %>
           <%= link_to 'Delete', destroy_review_path(review), data: {confirm: "Are you sure you want to delete this review?"} %> </li>
        <% end %>

    </ul>
  </div>
  <% end %>

视图页不工作,我得到一个

代码语言:javascript
复制
NoMethodError: undefined method `destroy_review_path' for #<#<Class:0x007fb095e46e28>:0x007fb09d1afdb0>
Did you mean?  edit_review_path

我把这个用来删除个人。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-17 22:46:10

这里没有路由问题:)

这只是RESTful路由的一个难以理解的第一微妙之处.

如果运行rake routes,您将看到所有路由的定义。

代码语言:javascript
复制
GET    /reviews          reviews#index    reviews_path
POST   /reviews          reviews#create   
GET    /reviews/new      reviews#new      new_review_path
GET    /reviews/:id/edit reviews#edit     edit_review_path
GET    /reviews/:id      reviews#show     review_path
PUT    /reviews/:id      reviews#update   
DELETE /reviews/:id      reviews#destroy  

您将注意到,有些路由没有as:命名。

这是因为路径名匹配URL路径,而不是控制器或操作。

注意,使用相同URL路径的路由也使用相同的路由名称。

单个RESTful路由可以使用4种不同的动词类型(即GETPOSTPUT/PATCHDELETE)。

正确的链接代码如下:

代码语言:javascript
复制
<%= link_to 'Delete', review_path(review), method: :delete, data: {confirm: "Are you sure you want to delete this review?"} %> </li>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40665386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档