Проблема с удалением ссылки? - PullRequest
1 голос
/ 24 мая 2010

Когда я нажимаю на созданную мной ссылку для удаления, в контроллере ничего не происходит (даже часть flash: Я не звоню .delete? часть правильно? Часть POST работает, как я могу добавить советы.

Ссылка:

<%= link_to "Delete", :controller => "/admin", :action => "tips", :id => t.id, :method => :delete, :confirm => "Are you sure?" %>

Admin Controller

def tips
  @tips = Tip.all
  if request.post?
    tip = Tip.new(params[:geek_tips])
    if tip.save
      flash[:notice] = "Saved!"
      redirect_to :action => "tips"
    else
      flash[:notice] = "Error!"
    end
  elsif request.delete?
    tip = Tip.find_by_id(params[:id])
    tip.delete!
    flash[:notice] = "Delete Message"
    redirect_to :action => "tips"
  end
end

1 Ответ

3 голосов
/ 24 мая 2010

Если оставить в стороне вопросы дизайна, я думаю, что ваша опция :method интерпретируется как параметр запроса.Можете ли вы увидеть «метод» в URL, если вы наведите указатель мыши на ссылку?

Если это так, попробуйте ...

<%= link_to "Delete", {:controller => "/admin", :action => "tips", :id => t.id}, :method => :delete, :confirm => "Are you sure?" %>

Обратите внимание на фигурные скобки вокруг части, которая определяет URL дляrequest.

Относительно дизайна: Каждый раз, когда у вас есть несколько действий в одном методе контроллера, вероятно, возникает проблема дизайна.В этом случае вместо того, чтобы использовать один метод контроллера администратора для выполнения нескольких действий подсказок, я хотел бы рассмотреть возможность создания выделенного контроллера tips_controller для сопоставления с вашей моделью Tip.

Если вы использовали RESTful маршруты, то есть в config.rb вы устанавливаете ...

map.resources :tips

... тогда вы можете использовать методы create и destroy в вашем tips_controllerдля создания и удаления ваших советов соответственно.

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