Rails 4.2.5 link_to 删除方法
Rails 4.2.5 link_to delete method
我对 link_to
助手的嵌套删除方法有疑问。
这是我的路线:
resources :restaurants, only: [:new, :show, :edit, :index,:create] do
resources :reservations, only: [:new, :show, :edit, :index, :create]
resources :reviews
end
这是我的审核控制器操作:
def destroy
@review = Review.find(params[:id])
@review.destroy
end
和我在 user#show
上的代码:
<div class="panel-body">
<h1> <%= pluralize(@user.reviews.count ,'review') %> from <%= @user.name %> </h1>
<% @user.reviews.order(created_at: :desc).each do |review| %>
<ul>
<li><em>Review for restaurant: </em><%= review.restaurant.name %></li>
<em>Review comment: </em> <%= review.comment %></br>
<%= link_to 'edit comment', edit_restaurant_review_path(review.restaurant_id, review.id) %>
<%= link_to 'delete comment', restaurant_review_path( @user, review.id ) , method: :delete, data:{confirm:"are you sure you want to delete this review"} %>
</ul>
<% end %>
</div>
这是我的路线:
restaurant_reviews GET /restaurants/:restaurant_id/reviews(.:format) reviews#index
POST /restaurants/:restaurant_id/reviews(.:format) reviews#create
new_restaurant_review GET /restaurants/:restaurant_id/reviews/new(.:format) reviews#new
edit_restaurant_review GET /restaurants/:restaurant_id/reviews/:id/edit(.:format) reviews#edit
restaurant_review GET /restaurants/:restaurant_id/reviews/:id(.:format) reviews#show
PATCH /restaurants/:restaurant_id/reviews/:id(.:format) reviews#update
PUT /restaurants/:restaurant_id/reviews/:id(.:format) reviews#update
DELETE /restaurants/:restaurant_id/reviews/:id(.:format) reviews#destroy
我似乎无法删除我的评论。我传递了错误的变量吗?
到 'restaurant_review_path'?我的路线似乎是正确的。因为我的编辑 link_to
助手正在工作。
restaurant_review_path( @user, review.id )
是错误的。您将 @user
作为 restaurant 参数传递,这将生成具有错误 ID 的 link。
你应该给它一个餐厅(或餐厅 ID)和评论,而不是用户和评论 ID,就像你在上一行编辑 link.
restaurant_review_path(review.restaurant_id, review.id)
我对 link_to
助手的嵌套删除方法有疑问。
这是我的路线:
resources :restaurants, only: [:new, :show, :edit, :index,:create] do
resources :reservations, only: [:new, :show, :edit, :index, :create]
resources :reviews
end
这是我的审核控制器操作:
def destroy
@review = Review.find(params[:id])
@review.destroy
end
和我在 user#show
上的代码:
<div class="panel-body">
<h1> <%= pluralize(@user.reviews.count ,'review') %> from <%= @user.name %> </h1>
<% @user.reviews.order(created_at: :desc).each do |review| %>
<ul>
<li><em>Review for restaurant: </em><%= review.restaurant.name %></li>
<em>Review comment: </em> <%= review.comment %></br>
<%= link_to 'edit comment', edit_restaurant_review_path(review.restaurant_id, review.id) %>
<%= link_to 'delete comment', restaurant_review_path( @user, review.id ) , method: :delete, data:{confirm:"are you sure you want to delete this review"} %>
</ul>
<% end %>
</div>
这是我的路线:
restaurant_reviews GET /restaurants/:restaurant_id/reviews(.:format) reviews#index
POST /restaurants/:restaurant_id/reviews(.:format) reviews#create
new_restaurant_review GET /restaurants/:restaurant_id/reviews/new(.:format) reviews#new
edit_restaurant_review GET /restaurants/:restaurant_id/reviews/:id/edit(.:format) reviews#edit
restaurant_review GET /restaurants/:restaurant_id/reviews/:id(.:format) reviews#show
PATCH /restaurants/:restaurant_id/reviews/:id(.:format) reviews#update
PUT /restaurants/:restaurant_id/reviews/:id(.:format) reviews#update
DELETE /restaurants/:restaurant_id/reviews/:id(.:format) reviews#destroy
我似乎无法删除我的评论。我传递了错误的变量吗?
到 'restaurant_review_path'?我的路线似乎是正确的。因为我的编辑 link_to
助手正在工作。
restaurant_review_path( @user, review.id )
是错误的。您将 @user
作为 restaurant 参数传递,这将生成具有错误 ID 的 link。
你应该给它一个餐厅(或餐厅 ID)和评论,而不是用户和评论 ID,就像你在上一行编辑 link.
restaurant_review_path(review.restaurant_id, review.id)