Загрузка stl файлов в three.js в приложение ruby ​​on rails

Я сталкиваюсь с интересной проблемой, когда пытаюсь использовать three.js внутри проекта ruby ​​on rails. Проблема возникает именно тогда, когда я пытаюсь загрузить внешние файлы STL для просмотра. Я установил его там, где люди загружают дизайны, а в дизайне есть идентификатор, имя файла и файл stl. Затем я хочу, чтобы three.js извлек URL-адрес файла и отобразил его. Всякий раз, когда я пытаюсь запустить его внутри моего проекта RoR, я получаю эту ошибку:

Запустил GET "/designs/slotted_disk" для 127.0.0.1 в 2014-06-12 20:11:30 -0700 Обработка в DesignsController # show as /

Параметры: {"id"=>"slotted_disk"}

Пользовательская нагрузка (0,2 мс) ВЫБЕРИТЕ "users".* FROM "users" WHERE "users"."Remember_token" = '...' LIMIT 1

Расчетная нагрузка (0,1 мс) ВЫБЕРИТЕ "Конструкции". * ИЗ "Проектирует" ГДЕ "Проектирует". "Id" =? ORDER BY create_at DESC LIMIT 1 [["id", "slotted_disk"]]

Завершено 404 Не найдено в 3 мс

ActiveRecord::RecordNotFound (Не удалось найти дизайн с id=slotted_disk): app/controllers/designs_controller.rb:19: в `show'

Из того, что я могу собрать, я сталкиваюсь с какой-то проблемой, когда ruby ​​on rails думает, что я пытаюсь передать новый дизайн и установить id в качестве имени файла проекта. Я не могу найти что-либо в Интернете, что покрывает это, любая помощь будет очень признателен!

Код контроллера RoR (designs_controller.rb)

    def show
        @design = Design.find(params[:id])
    end

Код представлений RoR (show.html.erb)

    <% provide(:title, @design.name) %>
    <div class="row">
      <aside class="span4">
        <section>
          <h1>
            <%= @design.name %>
          </h1>
          <div id="viewer"></div>
          <%= javascript_include_tag "three.min"     %>
          <%= javascript_include_tag "STLLoader"     %>
          <%= javascript_include_tag "TypedGeometry" %>
          <%= javascript_include_tag "Detector"      %>
          <%= javascript_include_tag "stats.min"     %>
          <%= javascript_include_tag "render_file"   %>
       </section>
      </aside>
   </div>

код three.js (render_file.js)

    var loader = new THREE.STLLoader();
    loader.addEventListener( 'load', function ( event ) {

      var geometry = event.content;
      var mesh = new THREE.Mesh( geometry, material );

      mesh.position.set( 0.136, - 0.37, - 0.6 );
      mesh.rotation.set( - Math.PI / 2, 0.3, 0 );
      mesh.scale.set( 2, 2, 2 );

      mesh.castShadow = true;
      mesh.receiveShadow = true;

      scene.add( mesh );
    } );
    loader.load( 'slotted_disk.stl' );

0 ответов

Другие вопросы по тегам