2009-11-23 3 views
0

Работа с запросом на добавление привлекательной подсказки на страницу (с помощью плагина подсказки jQuery, как рекомендовано другими в моей команде). Довольно подсказке работает нормально, но два из существующих спецификаций в настоящее время не получится, пример ниже:Как исправить спецификацию для удаления hml-тегов после добавления javascript к представлению в Rails?

describe 'with a discussion post containing html' do 

    before(:each) do 
    @post.update_attributes(:body => "some <strong>bold and <i>italic</i></strong> text") 
    assigns[:posts] = @discussion.posts.paginate(:page => 1) 
    render 
    end 

    it 'should strip the html tags from the post body' do 
    response.should say('some bold and italic text') 
    end  
end 

Для Комплектность, вот Javascript я добавил к обсуждениям показать страницу и полученную RSpec.

<script type="text/javascript" charset="utf-8"> 
    $(function(){ 
    $('#useful_item_submit').tooltip(); 
    }); 
</script> 

<div id="useful_item_form" > 
    <% form_for [flaggable, flaggable.useful_items.new] do |f| -%> 
    <div> 
     <%= f.submit "I find this useful", :title => 'Click to let others know you found this useful' %> 
    </div> 
    <% end -%> 
</div> 

Должен ли я изменить тест, чтобы игнорировать дополнительные Javascript или я не должен иметь JavaScript в файле show.html.erb?

Выход из спецификации ============

'discussions/show.html.erb with a discussion post containing html should strip the html tags from the post body' FAILED 
<"some bold and italic text"> expected but was 
<"some bold and italic text\n\t\t\n $(function(){\n $('#useful_item_submit').tooltip();\n });">. 
<false> is not true. 

ответ

0

Я бы определенно поставить вас JavaScript в файл JavaScript.

Я делаю это, чтобы сделать в том числе и JavaScripts очень просто:

в app/views/layouts/application.html.erb где:

<%= yield :javascripts %> 

в app/helpers/layout_helper.rb:

def javascript(file) 
    content_for(:javascripts) { javascript_include_tag file } 
end 

затем, в public/javascripts/useful_item.js:

$(function(){ 
    $('#useful_item_submit').tooltip(); 
    // among other useful javascripts that useful_items might use 
}); 
На ваш взгляд: