2009-10-19 7 views
3

Im en utilisant un link_to_function/insert_html pour insérer un partial dans la page. Tout fonctionne bien, jusqu'à ce que j'ajoute un autre link_to_function/insert_html dans le partiel qui est rendu dans la page. Tout d'un coup le lien link_to_function externe cesse de fonctionner et jette cette erreur:Les fonctions imbriquées link_to_function/insert_html provoquent des erreurs javascript

"missing } after property list" [Break on this error] t.insert("content_items_1", { bottom: " ...[][position]\" type=\"hidden\" value="

Je pense que le fait que le bloc de html/js est à double rendu dans le lien cité est à l'origine des problèmes. Cela semble être un bug avec les rails, mais cela semble aussi une chose assez commune. Est-ce que je manque quelque chose? Un travail facile autour?

code: Page principale

<ol id="chapters"> 
    <%= render :partial => 'chapter', :collection => @course.chapters %> 
    </ol> 
    <%= link_to_function("Add Chapter") do |page| 
    page.insert_html :bottom, :chapters, :partial => 'chapter', :object => Chapter.new 
    end %> 

code: partiel 'chapitre'

<ol id="content_items_<%= @content_item_iter.to_s %>"> 
    </ol> 
    <%= link_to_function "Add Content Item" do |page2| 
    page2.insert_html :bottom, "content_items_#{@content_item_iter.to_s}", :partial => 'content_item', :object => ContentItem.new 
    end %> 

Voici le lien qui ne fonctionne pas (le lien Ajouter un chapitre) - \ n \ n \\ n remplacé par une nouvelle ligne:

 <a href="#" onclick="try { 
    Element.insert(&quot;chapters&quot;, { bottom: &quot; 
    &lt;li&gt; 
     &lt;input id=\&quot;course_chapter_attributes_1_position\&quot; name=\&quot;course[chapter_attributes][1][position]\&quot; type=\&quot;hidden\&quot; value=\&quot;0\&quot; /&gt; 
     &lt;h2&gt; 
     &lt;label for=\&quot;course_chapter_attributes_1_name\&quot;&gt;Chapter:&lt;/label&gt; 
     &lt;input id=\&quot;course_chapter_attributes_1_name\&quot; name=\&quot;course[chapter_attributes][1][name]\&quot; size=\&quot;30\&quot; type=\&quot;text\&quot; /&gt; 
     &lt;/h2&gt; 
     &lt;ol id=\&quot;content_items_1\&quot;&gt; 
     &lt;/ol&gt; 
     &lt;a href=\&quot;#\&quot; onclick=\&quot;try { 
Element.insert(&quot;content_items_1&quot;, { bottom: &quot;   
      &lt;li&gt; 
      &lt;input id=\\&quot;course_chapter_attributes__content_item_attributes__position\\&quot; name=\\&quot;course[chapter_attributes][][content_item_attributes][][position]\\&quot; type=\\&quot;hidden\\&quot; value=\\&quot;1\\&quot; /&gt; 
      &lt;h3&gt; 
      &lt;label for=\\&quot;course_chapter_attributes__content_item_attributes__description\\&quot;&gt;Article:&lt;/label&gt; 
      &lt;input id=\\&quot;course_chapter_attributes__content_item_attributes__description\\&quot; name=\\&quot;course[chapter_attributes][][content_item_attributes][][description]\\&quot; size=\\&quot;30\\&quot; type=\\&quot;text\\&quot; /&gt; &lt;br /&gt; 
      &lt;/h3&gt; 
      &lt;label for=\\&quot;course_chapter_attributes__content_item_attributes__url\\&quot;&gt;Link URL:&lt;/label&gt; 
      &lt;input id=\\&quot;course_chapter_attributes__content_item_attributes__url\\&quot; name=\\&quot;course[chapter_attributes][][content_item_attributes][][url]\\&quot; size=\\&quot;30\\&quot; type=\\&quot;text\\&quot; /&gt; &lt;br /&gt; 
      &lt;label for=\\&quot;course_chapter_attributes__content_item_attributes__youtube_id\\&quot;&gt;Youtube Video ID:&lt;/label&gt; 
      &lt;input id=\\&quot;course_chapter_attributes__content_item_attributes__youtube_id\\&quot; name=\\&quot;course[chapter_attributes][][content_item_attributes][][youtube_id]\\&quot; size=\\&quot;30\\&quot; type=\\&quot;text\\&quot; /&gt; &lt;br /&gt; 
      &lt;label for=\\&quot;course_chapter_attributes__content_item_attributes__start_time\\&quot;&gt;Start/Stop Time:&lt;/label&gt; 
      &lt;input id=\\&quot;course_chapter_attributes__content_item_attributes__start_time\\&quot; name=\\&quot;course[chapter_attributes][][content_item_attributes][][start_time]\\&quot; size=\\&quot;30\\&quot; type=\\&quot;text\\&quot; /&gt; &lt;input id=\\&quot;course_chapter_attributes__content_item_attributes__end_time\\&quot; name=\\&quot;course[chapter_attributes][][content_item_attributes][][end_time]\\&quot; size=\\&quot;30\\&quot; type=\\&quot;text\\&quot; /&gt; 
      &lt;/li&gt; 


&quot; }); 
} catch (e) { alert('RJS error: ' + e.toString()); alert('Element.insert(\\&quot;content_items_1\\&quot;, { bottom: \\&quot;   
      &lt;li&gt; 
      &lt;input id=\\\\\\&quot;course_chapter_attributes__content_item_attributes__position\\\\\\&quot; name=\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][position]\\\\\\&quot; type=\\\\\\&quot;hidden\\\\\\&quot; value=\\\\\\&quot;1\\\\\\&quot; /&gt; 
      &lt;h3&gt; 
      &lt;label for=\\\\\\&quot;course_chapter_attributes__content_item_attributes__description\\\\\\&quot;&gt;Article:&lt;/label&gt; 
      &lt;input id=\\\\\\&quot;course_chapter_attributes__content_item_attributes__description\\\\\\&quot; name=\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][description]\\\\\\&quot; size=\\\\\\&quot;30\\\\\\&quot; type=\\\\\\&quot;text\\\\\\&quot; /&gt; &lt;br /&gt; 
      &lt;/h3&gt; 
      &lt;label for=\\\\\\&quot;course_chapter_attributes__content_item_attributes__url\\\\\\&quot;&gt;Link URL:&lt;/label&gt; 
      &lt;input id=\\\\\\&quot;course_chapter_attributes__content_item_attributes__url\\\\\\&quot; name=\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][url]\\\\\\&quot; size=\\\\\\&quot;30\\\\\\&quot; type=\\\\\\&quot;text\\\\\\&quot; /&gt; &lt;br /&gt; 
      &lt;label for=\\\\\\&quot;course_chapter_attributes__content_item_attributes__youtube_id\\\\\\&quot;&gt;Youtube Video ID:&lt;/label&gt; 
      &lt;input id=\\\\\\&quot;course_chapter_attributes__content_item_attributes__youtube_id\\\\\\&quot; name=\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][youtube_id]\\\\\\&quot; size=\\\\\\&quot;30\\\\\\&quot; type=\\\\\\&quot;text\\\\\\&quot; /&gt; &lt;br /&gt; 
      &lt;label for=\\\\\\&quot;course_chapter_attributes__content_item_attributes__start_time\\\\\\&quot;&gt;Start/Stop Time:&lt;/label&gt; 
      &lt;input id=\\\\\\&quot;course_chapter_attributes__content_item_attributes__start_time\\\\\\&quot; name=\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][start_time]\\\\\\&quot; size=\\\\\\&quot;30\\\\\\&quot; type=\\\\\\&quot;text\\\\\\&quot; /&gt; &lt;input id=\\\\\\&quot;course_chapter_attributes__content_item_attributes__end_time\\\\\\&quot; name=\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][end_time]\\\\\\&quot; size=\\\\\\&quot;30\\\\\\&quot; type=\\\\\\&quot;text\\\\\\&quot; /&gt; 
      &lt;/li&gt; 



\\&quot; });'); throw e }; return false;\&quot;&gt;Add Content Item&lt;/a&gt; 
    &lt;/li&gt; 


&quot; }); 
    } catch (e) { alert('RJS error: 

' + e.toString()); alert('Element.insert(\&quot;chapters\&quot;, { bottom: \&quot; 
    &lt;li&gt; 
     &lt;input id=\\\&quot;course_chapter_attributes_1_position\\\&quot; name=\\\&quot;course[chapter_attributes][1][position]\\\&quot; type=\\\&quot;hidden\\\&quot; value=\\\&quot;0\\\&quot; /&gt; 
     &lt;h2&gt; 
     &lt;label for=\\\&quot;course_chapter_attributes_1_name\\\&quot;&gt;Chapter:&lt;/label&gt; 
     &lt;input id=\\\&quot;course_chapter_attributes_1_name\\\&quot; name=\\\&quot;course[chapter_attributes][1][name]\\\&quot; size=\\\&quot;30\\\&quot; type=\\\&quot;text\\\&quot; /&gt; 
     &lt;/h2&gt; 
     &lt;ol id=\\\&quot;content_items_1\\\&quot;&gt; 
     &lt;/ol&gt; 
     &lt;a href=\\\&quot;#\\\&quot; onclick=\\\&quot;try { 
Element.insert(&quot;content_items_1&quot;, { bottom: &quot;   
      &lt;li&gt; 
      &lt;input id=\\\\&quot;course_chapter_attributes__content_item_attributes__position\\\\&quot; name=\\\\&quot;course[chapter_attributes][][content_item_attributes][][position]\\\\&quot; type=\\\\&quot;hidden\\\\&quot; value=\\\\&quot;1\\\\&quot; /&gt; 
      &lt;h3&gt; 
      &lt;label for=\\\\&quot;course_chapter_attributes__content_item_attributes__description\\\\&quot;&gt;Article:&lt;/label&gt; 
      &lt;input id=\\\\&quot;course_chapter_attributes__content_item_attributes__description\\\\&quot; name=\\\\&quot;course[chapter_attributes][][content_item_attributes][][description]\\\\&quot; size=\\\\&quot;30\\\\&quot; type=\\\\&quot;text\\\\&quot; /&gt; &lt;br /&gt; 
      &lt;/h3&gt; 
      &lt;label for=\\\\&quot;course_chapter_attributes__content_item_attributes__url\\\\&quot;&gt;Link URL:&lt;/label&gt; 
      &lt;input id=\\\\&quot;course_chapter_attributes__content_item_attributes__url\\\\&quot; name=\\\\&quot;course[chapter_attributes][][content_item_attributes][][url]\\\\&quot; size=\\\\&quot;30\\\\&quot; type=\\\\&quot;text\\\\&quot; /&gt; &lt;br /&gt; 
      &lt;label for=\\\\&quot;course_chapter_attributes__content_item_attributes__youtube_id\\\\&quot;&gt;Youtube Video ID:&lt;/label&gt; 
      &lt;input id=\\\\&quot;course_chapter_attributes__content_item_attributes__youtube_id\\\\&quot; name=\\\\&quot;course[chapter_attributes][][content_item_attributes][][youtube_id]\\\\&quot; size=\\\\&quot;30\\\\&quot; type=\\\\&quot;text\\\\&quot; /&gt; &lt;br /&gt; 
      &lt;label for=\\\\&quot;course_chapter_attributes__content_item_attributes__start_time\\\\&quot;&gt;Start/Stop Time:&lt;/label&gt; 
      &lt;input id=\\\\&quot;course_chapter_attributes__content_item_attributes__start_time\\\\&quot; name=\\\\&quot;course[chapter_attributes][][content_item_attributes][][start_time]\\\\&quot; size=\\\\&quot;30\\\\&quot; type=\\\\&quot;text\\\\&quot; /&gt; &lt;input id=\\\\&quot;course_chapter_attributes__content_item_attributes__end_time\\\\&quot; name=\\\\&quot;course[chapter_attributes][][content_item_attributes][][end_time]\\\\&quot; size=\\\\&quot;30\\\\&quot; type=\\\\&quot;text\\\\&quot; /&gt; 
      &lt;/li&gt; 



&quot; }); 
} catch (e) { alert(\'RJS error: 

\' + e.toString()); alert(\'Element.insert(\\\\&quot;content_items_1\\\\&quot;, { bottom: \\\\&quot;   
      &lt;li&gt; 
      &lt;input id=\\\\\\\\\\\\&quot;course_chapter_attributes__content_item_attributes__position\\\\\\\\\\\\&quot; name=\\\\\\\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][position]\\\\\\\\\\\\&quot; type=\\\\\\\\\\\\&quot;hidden\\\\\\\\\\\\&quot; value=\\\\\\\\\\\\&quot;1\\\\\\\\\\\\&quot; /&gt; 
      &lt;h3&gt; 
      &lt;label for=\\\\\\\\\\\\&quot;course_chapter_attributes__content_item_attributes__description\\\\\\\\\\\\&quot;&gt;Article:&lt;/label&gt; 
      &lt;input id=\\\\\\\\\\\\&quot;course_chapter_attributes__content_item_attributes__description\\\\\\\\\\\\&quot; name=\\\\\\\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][description]\\\\\\\\\\\\&quot; size=\\\\\\\\\\\\&quot;30\\\\\\\\\\\\&quot; type=\\\\\\\\\\\\&quot;text\\\\\\\\\\\\&quot; /&gt; &lt;br /&gt; 
      &lt;/h3&gt; 
      &lt;label for=\\\\\\\\\\\\&quot;course_chapter_attributes__content_item_attributes__url\\\\\\\\\\\\&quot;&gt;Link URL:&lt;/label&gt; 
      &lt;input id=\\\\\\\\\\\\&quot;course_chapter_attributes__content_item_attributes__url\\\\\\\\\\\\&quot; name=\\\\\\\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][url]\\\\\\\\\\\\&quot; size=\\\\\\\\\\\\&quot;30\\\\\\\\\\\\&quot; type=\\\\\\\\\\\\&quot;text\\\\\\\\\\\\&quot; /&gt; &lt;br /&gt; 
      &lt;label for=\\\\\\\\\\\\&quot;course_chapter_attributes__content_item_attributes__youtube_id\\\\\\\\\\\\&quot;&gt;Youtube Video ID:&lt;/label&gt; 
      &lt;input id=\\\\\\\\\\\\&quot;course_chapter_attributes__content_item_attributes__youtube_id\\\\\\\\\\\\&quot; name=\\\\\\\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][youtube_id]\\\\\\\\\\\\&quot; size=\\\\\\\\\\\\&quot;30\\\\\\\\\\\\&quot; type=\\\\\\\\\\\\&quot;text\\\\\\\\\\\\&quot; /&gt; &lt;br /&gt; 
      &lt;label for=\\\\\\\\\\\\&quot;course_chapter_attributes__content_item_attributes__start_time\\\\\\\\\\\\&quot;&gt;Start/Stop Time:&lt;/label&gt; 
      &lt;input id=\\\\\\\\\\\\&quot;course_chapter_attributes__content_item_attributes__start_time\\\\\\\\\\\\&quot; name=\\\\\\\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][start_time]\\\\\\\\\\\\&quot; size=\\\\\\\\\\\\&quot;30\\\\\\\\\\\\&quot; type=\\\\\\\\\\\\&quot;text\\\\\\\\\\\\&quot; /&gt; &lt;input id=\\\\\\\\\\\\&quot;course_chapter_attributes__content_item_attributes__end_time\\\\\\\\\\\\&quot; name=\\\\\\\\\\\\&quot;course[chapter_attributes][][content_item_attributes][][end_time]\\\\\\\\\\\\&quot; size=\\\\\\\\\\\\&quot;30\\\\\\\\\\\\&quot; type=\\\\\\\\\\\\&quot;text\\\\\\\\\\\\&quot; /&gt; 
      &lt;/li&gt; 



\\\\&quot; });\'); throw e }; return false;\\\&quot;&gt;Add Content Item&lt;/a&gt; 
    &lt;/li&gt; 


\&quot; });'); throw e }; return false;">Add Chapter</a> 
+0

Pourriez-vous nous signaler toute l'erreur et le javascript qui a été généré? – EmFi

+0

EmFi, je ne peux pas obtenir l'erreur complète (firebug ne me donne plus d'infos), mais j'ai juste ajouté le lien qui est généré et ne fonctionne pas. – LMH

+0

Désolé, l'erreur est apparue comme un extrait. En regardant de plus près, c'est une erreur complète. Ce javascript généré est vraiment difficile à lire, est-il possible de remplacer \ n par de nouveaux caractères de ligne? Je pourrais le faire, mais cela m'aide seulement et pas n'importe qui d'autre qui regarde votre question. – EmFi

Répondre

0

L'erreur semble indiquer que votre feuille de style manque d'une accolade de fermeture.