Ruby on Rails link_to: method =>: удалить синтаксис - PullRequest
1 голос
/ 31 августа 2011

Это крошечный вопрос.У меня есть ресурс Project, который has_many Feeds.Когда я просматриваю список вложенных каналов на странице проекта, у меня есть кнопка Delete, чтобы удалить этот канал из проекта.Он работает с этим синтаксисом:

<%= link_to 'Delete', [feed.project, feed], :confirm => 'Are you sure?', :method => :delete %>

Но затем он перенаправляет на страницу со списком всех каналов, и я вместо этого хочу, чтобы он перенаправил обратно на страницу проекта, на которой был только пользователь.Это вопрос изменения [feed.project, feed] или что-то еще?Я не совсем понимаю синтаксис link_to достаточно хорошо.

РЕДАКТИРОВАТЬ: В моем feeds_controller.rb я изменил строку перенаправления на :back

def destroy
project = Project.find(params[:project_id])
@feed = project.feeds.find(params[:id])
@feed.destroy
redirect_to :back

respond_to do |format|
  format.html { redirect_to :back }
  format.xml  { head :ok }
end
end

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Вы должны взглянуть на контроллер для этого ресурса. Это должно быть где-то вроде app/controllers/projects_controller, где должно быть действие с именем destroy. Код, который выполняет перенаправление, должен быть там. Вам придется изменить следующую строку:

redirect_to project_feeds_url(project)

к этому

redirect_to :back
0 голосов
/ 31 августа 2011

в вашем контроллере

def destroy
  @project = Project.find(params[:project_id])
  @feed = @project.feeds.find(params[:id])
  @feed.destroy
  redirect_to @project
end
...