ссылка для удаления поста - PullRequest
2 голосов
/ 20 марта 2012

У меня есть этот код:

<table>
 <% @posts.each do |post| %>
  <tr>
   <td><%= post.created_at.utc.strftime("%d.%m.%Y") %></td>
   <td><%= link_to(post.title, {:controller=>:blog,:action=>:show, :id=>post}) %></td>
   <td><%= link_to 'Edit', edit_post_path(post) %></td>
   <td><%= link_to 'Destroy', {:controller=>:posts,:action=>:destroy, :id=>post}, :method=>:delete %></td>
 </tr>
<% end %>

Проблема в том, что link_to 'Destroy' не удаляет сообщения, а просто открывает их. Любые предложения, чтобы решить эту проблему?

Файл

rout.rb:

LivuPamatskola::Application.routes.draw do
resources :posts
get "admin/rakstu_red"
get "home/par_skolu"
get "home/personals"
get "home/kontakti"
get "home/pers_pieeja"
get "home/galerijas"
get "home/index"
root :to => 'home#index'

posts.controller.rb уничтожить раздел:

def destroy
   @post = Post.find(params[:id])
   @post.destroy

   respond_to do |format|
     format.html { redirect_to posts_url }
     format.json { head :no_content }
  end
end

application.js:

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require_tree .

макет головы:

<head>
<title>Līvu pamatskola</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%= stylesheet_link_tag 'style' %>
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>
</head>

РЕШИТЬ:

Наше сообщение найдено: Rails 3.1 link_to не показывает подтверждение или уничтожает должным образом

В любом случае, спасибо, ребята, за помощь!

Ответы [ 2 ]

2 голосов
/ 20 марта 2012
<%= link_to 'Destroy', post, :method => :delete, :confirm => "Are you sure?" %>

также вы можете очистить небольшую ссылку для редактирования

<%= link_to post.title, post %>

И отредактировать ссылку

<%= link_to 'Edit', [:edit, post] %>
0 голосов
/ 20 марта 2012

вероятно это пропущено: <%= csrf_meta_tag %> он должен быть в application.html.erb, а полный файл будет

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <%= stylesheet_link_tag :all %>
  <%= javascript_include_tag :defaults %>
  <%= csrf_meta_tag %>
</head>

EDIT:

Вы используете JQuery? Если это так, я думаю, что проблема может быть в том, что вы используете JQuery без обновленного файла rails.js.

Загрузите rails.js здесь: https://github.com/rails/jquery-ujs/raw/master/src/rails.js Перетащите его в свой каталог javascripts, перезаписав rails.js, который поставляется по умолчанию с rails.

Добавьте строку включения javascript, чтобы включить ее.

<% = javascript_include_tag "rails"%> Поместите это после тега Jquery include.

EDIT:

извините, я думал, что вы используете rails3, поэтому лучше показывать версию rails, когда вы спрашиваете В rails 3.1 или выше вам не нужен rails.js, просто убедитесь, что эти строки существуют в вашем application.js

//= require jquery
//= require jquery_ujs
//= require_tree .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...