Шаблоны JS визуализируются, но в Rails 3.0.7 ничего не происходит - PullRequest
2 голосов
/ 25 июня 2011

show.html.erb:

...
<%= link_to "Start Retrieval", {:action => "retrieve"}, :remote => true %>
<div id="notices">
       <%= render :partial => 'notice' %>  
</div>
....

_notice.html.erb:

<div>Notice</div>

retrieve.js.erb:

#alert('test') //=> does not work
$('#notices').append("<% escape_javascript render :partial => 'notice' %>");

контроллер:

def retrieve
    respond_to do |f|
       #f.js {render :js => "alert(typeof jQuery != 'undefined')"} #=> true
       f.js {render :js => "retrieve"} #=> nothing happens
    end
end

Вывод:

Started GET "/model/1/retrieve" for 127.0.0.1 at 2011-06-24 21:09:44 +0100
  Processing by ModelController#retrieve as JS
  Parameters: {"id"=>"1"}
Completed 200 OK in 50ms (Views: 49.2ms | ActiveRecord: 0.0ms)

Как видите, глагол извлечения не касается модели напрямую, и я не передаю переменную @model в шаблоны.У меня сложилось впечатление, что это просто сокращение и не должно влиять на вещи.Я не прав насчет этого?

1 Ответ

1 голос
/ 25 июня 2011

Вы должны иметь возможность просто сделать:

respond_to do |f|
  f.js {}
end

, что сделает файл js.erb с тем же именем, что и действие (retrieve.js.erb).

Чтовы делаете визуализацию строки «retrieve» как чистый javascript, что эквивалентно просто «retrieve» в файле js, например:

&ltjavascript>
retrieve
&lt/javascript>
...