Рендеринг JavaScript для частичного - Rails 3 - PullRequest
1 голос
/ 31 мая 2011

Я все еще относительно новичок в рельсах и привыкаю к ​​нескольким вещам.Просто быстрый вопрос, у меня есть форма AJAX (с: remote => true и т. Д.), Которая работает и отправляет данные на сервер без загрузки страницы.

Мой вопрос касается файла javascript, которыйможно использовать после поста.Моя часть называется «_newsomething.html.erb», и как только она будет опубликована, я хочу выполнить файл javascript - должны ли эти файлы быть названы в честь действий в контроллере для синхронизации и правильной работы в rails?На данный момент у меня есть файл javascript с именем 'create.js.erb', в котором есть только предупреждение javascript, но оно не запускается.

например, нужно ли мне иметь часть с именем _create.html.erb', а затем файл JavaScript с именем' create.js.erb '?Есть ли способ сообщить Rails, где искать файл javascript из контроллера?

Заранее спасибо!

РЕДАКТИРОВАТЬ: код контроллера ниже (очень простой и генерируемый в данный момент))

  def create
@snip = Snip.new(params[:snip])

respond_to do |format|
  if @snip.save
    format.html { redirect_to(@snip, :notice => 'Snip was successfully created.') }
    format.xml  { render :xml => @snip, :status => :created, :location => @snip }
  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @snip.errors, :status => :unprocessable_entity }
  end
end

end

1 Ответ

2 голосов
/ 31 мая 2011

В вашем контроллере вы должны иметь:

respond_to do |format|
  format.html { .... }
  format.js
end

Format.js является важной частью.Если Rails обнаружит, что вы выполняете POST через AJAX, он сделает _create.js.erb частичным.

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