Так что я играю с CoffeeScript, Rails 3.1 и так далее.У меня есть ресурс со всеми обычными маршрутами индексации, показа, создания, редактирования, обновления, уничтожения.
Представление индекса имеет форму, которая использует :remote => true
примерно так:
<%= form_for @todo, :remote => true do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
В контроллере для создания у меня есть следующее:
def create
@todo = Todo.new(params[:todo])
respond_to do |format|
if @todo.save
format.html { redirect_to @todo, notice: 'Todo was successfully created.' }
format.json { render json: @todo, status: :created, location: @todo }
format.js {render json: @todo }
else
format.html { render action: "new" }
format.json { render json: @todo.errors, status: :unprocessable_entity }
end
end
end
Я пытаюсьне использовать представления .js.erb, так как я предпочитаю обрабатывать возвращенный JSON и делать все модные добавления в список задач и так далее.(Мне это кажется чище).
В моем todos.js.coffee я использовал следующее:
$(document).ready ->
$("#new_todo")
.bind "ajax:success", (event, data) ->
alert("Ajax SUCCESS!!!")
(да, просто связывание, чтобы открыть окно предупреждения, не работает)Я пытался загрузить, но просто не могу вызвать это событие.Запрос успешно завершен, и добавлен новый todo.
Любая помощь с этим будет оценена.Спасибо