2013-12-17 2 views
1

Я работаю над переносом из Prototype в jQuery, и нам также нужно удалить файл .rjs, когда мы сможем. Существует здесь один вопрос:Как вызвать файл .js.erb вместо .rjs one

Я получил файл update_overall_comment.rjs в папке приложения/просмотров/результаты:

page.replace 'overall_comment', :partial => 'results/marker/overall_comment', :locals => {:result => @result} 
page.visual_effect(:highlight, 'overall_comment_text_area', :startcolor => '#BDFCC9') 

Файл _overall_comment.html.erb в приложение/просмотров/результаты/маркеры папка:

<div id="overall_comment"> 
      <div id="overall_comment_edit"> 
      <%= form_for @result, 
       :remote => true, 
       :url => { :action => 'update_overall_comment', :id => @result.id } do |f| %> 
       <%= f.text_area :overall_comment, 
       :cols => 50, 
       :rows => 5, 
       :id => 'overall_comment_text_area', 
       :onkeydown => "$('overall_comment_submit').enable();" %> 
      <div> 
      <%= f.submit t(:save_changes), 
       :disable_with => I18n.t('working'), 
       :disabled => true, 
       :id => "overall_comment_submit"%> 
      </div> 
      <% end %> 
    </div> 
</div> 

И results.controller.rb файл (я только показывать соответствующую функцию) в папке приложения/контроллеры:

def update_overall_comment 
    @result = Result.find(params[:id]) 
    @result.overall_comment = params[:result][:overall_comment] 
    @result.save 
end 

Прежде всего, я хотел бы понять, как преобразовать файл .rjs в .js.erb. Я удалил его и создал update_overall_comment.js.erb (в той же папке), который содержит только console.log ('...'), и я никогда не видел, как вызывал console.log.

Есть ли у вас идеи?

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

ответ

1

update_overall_comment.rjs переименовать в update_overall_comment.js.erb

то в этом файле:

$('#overall_comment').html("<%= j(render 'results/marker/overall_comment') %>"); 
$('#overall_comment_text_area').effect("highlight", { color: "#BDFCC9" }, 3000); 

P.S. не уверен в том, что подсветка, также для проверки того, что js.erb-файл вызывается/отображается, я использую alert('something here'); вместо console('...');, но это не должно быть большой разницей для тестирования вызова ajax.

0

спасибо. Я допустил некоторые ошибки.

Например, я думал, что строка с «//» была комментарием, и на самом деле она делает ошибку ajax. Кроме того, я использовал частичную для первой линии, и она не работала.

И я думал, что этот файл js.erb сообщит мне об ошибках, но нет. Он просто останавливается, когда он не работает без какой-либо информации. Поэтому мне пришлось самому найти, что моя версия jquery не имеет метода «эффекта».

Но теперь это работает и ваш перевод работы visual_effect (я просто положил 1000 мс вместо 3000).

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