2011-06-19 2 views
3

У меня есть эшафот под названием post, который имеет название и описание. На моем макете у меня есть ссылка для создания нового сообщения, которое имеет: remote => true. Как я могу сделать это, когда я нажму на эту удаленную ссылку, чтобы изменить содержимое div, чтобы я мог создать новый пост?Rails 3.1 Ajax question

ответ

7

Предположим, что действие, которое вы будете использовать, называется new. Вы должны создать файл с именем new.js.erb в представлениях/сообщениях, которые будут отображаться при удаленном удалении формы. Этот файл должен содержать javascript, который помещает новое сообщение в div, который вы хотите заполнить. В качестве примера, он может содержать

# new.js.erb 
$('div#container').html("<p><%= escape_javascript(@post.title) %></p>").append("<p><%= escape_javascript(@post.content) %></p>"); 

Javascript будет выполняться сразу же после того, как Ajax после завершения и новый пост создается. Помните следующее: - Вы должны включить JQuery - Вы должны указать в posts_controller возможность визуализации формата .js, что-то вроде

# posts_controller.erb 
def create 
    @post = Post.new(params[:post]) 

    respond_to do |format| 
     if @post.save 
     format.html { redirect_to(@post, :notice => 'Post created via non AJAX.') } 
     format.js # the actual ajax call 
     else 
     format.html { render :action => "new" } 
     end 
    end 
end