2011-04-26 1 views
0

Я начинаю с jquery.rails-json-jquery не отображается содержимое файла просмотра

У меня есть вызов к контроллеру от, как показано ниже:

jQuery('#search_form').submit(function(){ 
     jQuery.post("topics/topics_details", { 
      'topic_name': jQuery('#topic_name').val(), 
     }, function(response){ 
     }, 'json'); 

     alert("hello"); 
     return false; 
    }); 

Тогда из внутренней функции я выполнить некоторые инструкции.

def topics_details 
    @tag=params[:topic_name] 
    puts "\n\nTopic = ",@tag 
    end 

то, что мне нужно выполнить файл вида (topics_details.html.erb) .Но, к сожалению, эта точка зрения не отображается (но, в консоли, которая визуализируется.), А предупреждение показывает.

Как вызвать частичный файл? Render_to_string/JSON может у основного примера ...

Может кто-нибудь, пожалуйста, помогите ... заранее спасибо ...

+0

Все виды проблем здесь, и это трудно понять, что вы на самом деле пытаетесь сделать. –

ответ

0

Всех видов проблем здесь и трудно понять, что вы на самом деле пытаетесь сделать. Ваше оповещение находится вне вызова jQuery.post, так что это всегда произойдет. Почему это предупреждение? Вы не делаете ничего с ответом, поэтому вам нужно либо: a) поместить что-то в блок функции (ответ), либо b) удалить его и разрешить рельсы обрабатывать ответ, например, в файле themes_details.js.rjs в папке приложений/просмотров/тем. Обычно это заменяет содержимое div на странице определенным частным. Вы не выполняете файл вида как таковой, а скорее оцениваете его и заменяете какой-либо контент на странице.

Вместо того, чтобы поймать форму отправки и отправить запрос ajax, почему бы просто не сделать его удаленной формой? Таким образом, он будет автоматически использовать ajax, и ваш контроллер будет работать с ним обычным способом, а затем ответьте его блоком формата .js, а не блоком формата .html. По умолчанию это будет искать файл с именем .js.rjs в соответствующей папке просмотра. например

<%= form_remote_tag :url => '/topics/topics_details' do %> 
    usual form stuff here - fields, submit etc 
<% end %> 

Это сделает запрос ajax/themes/themes_details. Это делает то, что он обычно делает, например, может быть, чтобы обновить переменную, называемую @topics, которая содержит массив объектов Topic. Они могут быть указаны на вашей странице в div с идентификатором «тем». Итак, вам просто нужно обновить этот div. Убедитесь, что это Див жизнь в частичном называемой «_topics.html.erb» в папке темы, и вы можете просто иметь следующий js.rjs файл:

#in app/views/topics/topics_details.js.rjs 
@page.replace "topics", :partial => "topics/topics.html.erb" 
+0

привет, только файлы .js.rjs будут отображаться вместо файла .html.erb. – jissy

+0

привет, как часть поиска тем, я делаю это. Если тема уже существует, то перенаправляйтесь на страницу topic_details. В противном случае эта тема должна быть добавлена ​​как новая тема. Вторая работает отлично через некоторые диалоговые окна. Так, Я не могу изменить стиль

. может помочь. – jissy

Смежные вопросы