2013-05-05 5 views
1

Я пытаюсь отобразить частичное изображение на моей странице. В консоли или в моем журнале терминалов ошибок нет ... сценарий ... что пользователь выбирает ссылку на странице и средняя область должна отображать. Я запускаю это через jquery и позволяю подаче перейти на сеанс моего контроллера и метод «showurvey», он получает необходимую информацию, а затем отображает showurvey.js.erb, чтобы заменить html частичным отображением.визуализация частичная не отображает ошибок в консоли

вот код участвует .... shownewuser.html.erb

 <%= include_gon %> 


<div id="content" class="clearfix"> 
<%= render :partial => 'layouts/user_profile' %> 
     <div class="inner"> 

     <div class="top_area">   
      </div> <!-- top_area -->    
      <p>Welcome <%[email protected]%> Drag the topics into the order of importance to you.</p> 
      <div id="middle_area" > 
      <%= render :partial => 'middle_newuser' %> 
     <div id="find"> 
     <p>Where voters and politicians can discuss and learn about the issues for free with no advertising dollars getting in the way <br /> 
     Subscribe to RSS feeds to stay in touch with their latest votes. </p> 
     </div> 

</div> <!-- inner_area --> 

частичный оригинал заменить _mi ddle_newuser.html.erb

   <div id = "draggable" class="ui-widget-content"> 
     <h3 class="ui-widget-header">Issues</h3> 
     <table> 
     <tr><td> 
     <ul id ="column1" > 
     <% (0..5).each do |i| %> 
     <% @sm_pic= @cat[i][:small_pic] 
      @CatName = @cat[i][:name] 
      @id = @cat[i][:id]%> 
       <li id="draggable"> 
      <%= link_to image_tag(@sm_pic, :border => 0), showsurvey_path({:data => @id}), :remote => true, :data => @id , :id => 'showSurvey' %> 
      </li> 
     <% end %> 
     </ul> 
      </td> 
        <td> 
      <ul id ="column1" > 
      <% (6..11).each do |i| %> 
      <% @sm_pic= @cat[i][:small_pic] 
      @CatName = @cat[i][:name] 
      @id = @cat[i][:id]%> 
       <li id="draggable"> 
      <%= link_to image_tag(@sm_pic, :border => 0), showsurvey_path, :data => @id %> 
         </li> 
       <% end %> 
     </ul> 
     </td> 
      <td> 
     <ul id ="column1" > 
     <% (12..17).each do |i| %> 
     <% @sm_pic= @cat[i][:small_pic] 
      @CatName = @cat[i][:name] 
      @id = @cat[i][:id]%> 
       <li id="draggable"> 
      <%= link_to image_tag(@sm_pic, :border => 0), showsurvey_path, :data => @id %> 
       </li> 

     <% end %> 
      </ul> 
      </td></tr> 
     </table> 
     </div id> <!-- draggable --> 
      </div> <!-- middle_area --> 

и парциальное, которые должны заменить этот метод ...._ middle_survey.html.erb

   <div> 
     <table><tr> 
      <div id="middle_area-left" > 
      <p>Welcome this will be the survey page for user after clicking on a priority icon.</p> 
      </div> 
      <div id="middle_area-center" > 
      <%= render :partial => 'form' %> 
      </div> 
      <div id="middle_area-right" > 
      <p>Welcome this will be the survey page for user after clicking on a priority icon.</p> 
      </div> 
      </tr> 
      </table> 
      </div> 

Контроллер showSurvey

def showsurvey 
    @title = "Survey for" 
    @category = Category.find(params[:data]) 
     @questions = @category.questions.find_all_by_category_id(params[:data]) 
     @current_question_rec = @questions.first 
     @current_question = @current_question_rec.question 
     @current_question_id = @current_question_rec.question_id 
     @answer = @category.questions.find(@current_question_id).answers.find_by_user_id(params[:id]) 
    respond_to do |format| 
    format.html { redirect_to @category } 
     format.js { render } 
end   

end

последний showSurvey.js.erb

более
$(#middle_area').replace_html("<%= escape_javascript render :partial => "middle_survey" %> "); 

Одно вот выход из моего терминала

Processing by SessionsController#showsurvey as JS 
    Parameters: {"id"=>"3", "data"=>"3"} 
    Category Load (0.2ms) SELECT "categories".* FROM "categories" WHERE "categories"."id" = ? LIMIT 1 [["id", "3"]] 
    Question Load (0.4ms) SELECT "questions".* FROM "questions" WHERE "questions"."category_id" = 3 AND "questions"."category_id" = '3' 
    Question Load (0.3ms) SELECT "questions".* FROM "questions" WHERE "questions"."category_id" = 3 AND "questions"."question_id" = ? LIMIT 1 [["question_id", 1]] 
    Answer Load (0.3ms) SELECT "answers".* FROM "answers" WHERE "answers"."question_id" = 1 AND "answers"."user_id" = 3 LIMIT 1 
    Rendered sessions/_form.html.erb (4.1ms) 
    Rendered sessions/_middle_survey.html.erb (5.8ms) 
    Rendered sessions/showsurvey.html.erb (7.6ms) 
Completed 200 OK in 26ms (Views: 13.9ms | ActiveRecord: 1.1ms) 

Спасибо за любую помощь

ответ

0
$(#middle_area').replace_html("<%= escape_javascript render :partial => "middle_survey" %> "); 

выглядит как опечатка, вы забыли вперед кавычки.

$ (« #middle_area»)

Кроме того, я не так хорош в CSS, но я не могу видеть Див #middle_area себя, вы уверены, что JQuery можно разобрать #middle_area-right и так далее?

+0

ah Я вижу, что вы говорите, но они являются действительными действительными элементами css. Я бы предположил, что это уменьшит это, но я не уверен в себе. Я изменил благодарность js и нашел некоторые другие опечатки, но все равно не пошел. – Jan

+0

вы можете сделать быстрый тест и бросить предупреждение, если элемент найден –

+0

Кроме того, удалите скобки с format.js {render}, потому что здесь вы просто проходите ноль. Я проверил вашу ссылку, я уверен, что причина, по которой рельсы даже не анализируют js-файл, заключается в том, что ваш синтаксис нарушает правила link_to. Проверьте ссылку в броузере, не проходит ли она: remote => true как params? Есть ли nofollow tag? –

0

Обнаружена проблема: все замечательные возвраты jquery, такие как «replace_html» и т. Д., Не работают, потому что, когда вы визуализируете js с контроллера, он думает о своих простых старых js и, следовательно, возвращается к объекту прототипа (глубоко погруженный в jquery) Я действительно нашел, прочитав другой StackOverflow вопрос ответил «заменить прототип с Jquery рельсов - replace_html вызывает ошибку»

Нижняя линия вам действительно нужно отладить в Интернете и пройти через JQuery, чтобы увидеть, где создается ошибка:

В моем случае он существовал в функции jquery под названием ajaxConvert (s, response)

......как только я вошел объект в консоли

conv(response) it displayed the following ..... 

TypeError: Object [объект Object] не имеет какого-либо метода «replace_html» на визуализации рельсов При поиске, что я нашел StackOverflow вопрос ответ. Еще раз крестился огнем!