2012-02-09 6 views
2

Я опишу приложение, состоящее из формы AJAX, которая также работает с отключенным Javascript.Как реализовать форму AJAX и отобразить шаблон?

При отправке, если Javascript отключен, он отображает новый шаблон с именем «created». Если Javascript включен, он также должен отображать его, но я не знаю, как это сделать.

Обратите внимание: что шаблон не имеет действия контроллера или маршрута, он отображается только по тому же маршруту, что и форма.

Файлы:

app/controllers/users_controller.rb 
app/views/users/new.html.erb 
app/views/users/created.html.erb 

users_controller.rb:

def create 
    respond_to do |format| 
    format.html { render :created } 
    format.js { render js: ??? } 
    end 
end 

new.html.erb:

<%= form_tag users_path, remote: true %> 
    <%= email_field_tag :email %> 

    <%= submit_tag "OK" %> 
<% end %> 

created.html.erb:

<div> 
    Inside this file there is a big template to be rendered. 
</div> 

ответ

1

Вы должны создать файл create.js.erb в views/users и разместить там контент.

Затем просто позвоните format.js с контроллера.

Для полного примера см этого RailsCast: http://railscasts.com/episodes/136-jquery

+0

Я уже знаю, как сделать это, но я хочу, чтобы повторно использовать свой существующий шаблон created.html.erb. Ввод моего html-кода внутри create.js.erb не будет отображаться автоматически. –

+0

В 'create.js.erb' вы можете сделать что-то вроде' $ (". Form"). ReplaceWith ("<% = escape_javascript (render '/ users/created')%>"); '(если вы используете JQuery). – Florent2

+0

Я думаю, что предложение Florent2 интересное. –

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