Jquery & Rails 3: Link_to Редактировать действие удаленно - PullRequest
2 голосов
/ 18 июля 2011

У меня есть контроллер обсуждений, для которого я хотел бы иметь действие редактирования, которое связано удаленно, позволяя вызову AJAX визуализировать частичное на странице (а не перенаправлять на совершенно новую страницу «редактирования».

Моя проблема в том, что я настроил действия в контроллере, и все файлы (я думаю, что это необходимо), но ссылка на странице показа обсуждения перенаправляет браузер на новую страницу, а не через ссылкук действию на контроллере и соответствующему файлу edit.js.erb. Мне интересно, где в моем коде я ошибся ..

Вот код для контроллера обсуждений:

 class DiscussionsController < ApplicationController
   include DiscussionsHelper

   def create
     ...
   end

   def show 
      ...
   end

   def edit
     respond_to do | format |  
        format.js
     end
   end 
 end

Который, я бы надеялся, вызвал бы файл js.erb edit.js.erb (который я сейчас заполнил только предупреждением - после того, как эта ссылка будет установлена ​​правильно, я намерен заполнить ее кодом jquery, чтобы сделать частичное редактированиеЯ хотел бы:

 alert("hello");

Ссылка, которую я разместил на странице шоу:

 <div class="discussion_overview">
   <h1><%= @discussion.title %></h1>
   <div class="edit_disc">
<%= link_to "Edit", :url => {:action => "edit", :id => @discussion}, :remote => true %>
   </div><br>

Как я уже сказал, я думал, что это вызоветфайл edit.js.erb, который я затем мог бы заполнить соответствующим кодом.Тем не менее, link_to вместо этого ссылается на:

 http://localhost:3000/discussions/54?remote=true&url[action]=edit&url[id]=54

Есть какие-либо идеи относительно того, что я сделал неправильно?

ОБНОВЛЕНИЕ, сбрасывающее URL => {}, чтобы стать:

 <%= link_to "Edit", :action => "edit", :id => @discussion, :remote => true %>

Не решает решение, вместо этого просто изменяет перенаправление на:

http://localhost:3000/discussions/54/edit?remote=true

вместо вызова AJAX для действия редактирования ..

1 Ответ

1 голос
/ 18 июля 2011

Это просто проблема синтаксиса в строке link_to.

<%= link_to "Edit", {:action => "edit", :id => @discussion}, :remote => true %>

Второй параметр в методе link_to () - это URL.Если вы добавите :url => {}, ваш URL-адрес будет находиться в другом хеше.Просто бросьте :url =>.:)

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