Действие отображения диалогового окна JQuery UI (Rails 3) - PullRequest
0 голосов
/ 19 сентября 2010

Прежде чем я начну, я новичок в javascript, rails 3 и jQuery, поэтому, пожалуйста, предоставьте полные примеры.

Вот что я пытаюсь сделать: я создал приложение rails с помощью scaffold иизменил javascript по умолчанию на jQuery, чтобы сделать круговую диаграмму на панели мониторинга.

Так что теперь я мог добавить пользовательский интерфейс jQuery и отобразить диалоговое окно с действием Show созданного скаффолда, когда кто-то нажимаетПоказать.

Название диалогового окна должно быть идентификатором.

К сожалению, все, что я пробовал до сих пор, не работает.

Я пробовал такие вещи, как:,: remote => true,

Я думаю, что самая большая проблема заключается в том, что выполняется POST (по крайней мере, если я смотрю на ошибки в терминале, он говорит:

Started POST "/trips/1" for 127.0.0.1 at Sun Sep 19 11:07:24 +0200 2010
ActionController::RoutingError (No route matches "/trips/1"):

Я думаю, что GET должен быть выполнен.

Вот мой полный индексный файл:

<h1>Listing trips</h1>

<table>
<tr>
<th>License</th>
<th>Contract</th>
<th>Time</th>
<th></th>
</tr>

<% @trips.each do |trip| %>
<tr>
<td><%= trip.license %></td>
<td><%= trip.contract %></td>
<td><%= trip.time %></td>
<td><%= link_to 'Show', trip, 'class'=>"ajax", :remote => true %></td>
<td><%= link_to 'Show', trip, 'class'=>"ajax" %></td>
<td><%= link_to 'Show', trip, 'id' => 'opener', :remote => true %></td>
<td><%= link_to 'Show', trip, 'id' => 'opener' %></td>
<td><%= link_to 'Show', trip, 'id' => 'showdialog', :remote => true %></td>
</tr>
<% end %>
</table>

<div id="example"></div>

<script type="text/javascript">
$(document).ready(function(){
var dialogOpts = {
  modal: true,
  bgiframe: true,
  autoOpen: false,
  height: 500,
  width: 500,
  draggable: true,
  resizeable: true,
};
$("#example").dialog(dialogOpts);   //end dialog

$('#showdialog').click(
  function() {
     $("#example").load(this.href, type: 'get', function(){
           $("#example").dialog("open");
        } 
     );
     return false;
  }
);

});
</script>

<script type="text/javascript">
$(document).ready(function() {
var dialogOpts = {
    autoOpen: false,
    title: 'Trip: Trip Number comes here',
    modal: true,
    height: 600,
    width: 600,
    draggable: false,
    resizable: false        
}

var $dialog = $('<div></div>')
    .html('Must become show action!')
    .dialog(dialogOpts);

    $('ae[data-remote=true]').live('click', function() {
      $dialog.dialog('open');
      return false;
    });

$('#opeaner').click(function() {
    $dialog.dialog('open');
    // prevent the default action, e.g., following a link
    return false;
});
});

    $(function (){
            $('aa.ajax').click(function() {
                    var url = this.href;
                    var dialog = $('<div></div>');
                    // load remote content
                    jQuery.ajax({type: 'GET'})
                    dialog.load(
                            url, 
                            {},
                            function (responseText, textStatus, XMLHttpRequest) {
                                    dialog.dialog();
                            }
                    );
                    //prevent the browser to follow the link
                    return false;
            });
    });

    var request = function(options) {
      $.ajax($.extend({ url : options.url, type : 'get' }, options));
      return false;
    };

    // remote links handler
    $('a[data-remote=true]').live('click', function() {
      return request({ url : this.href });
    });

</script>

Я знаю, что сейчас 1 большой беспорядок, но это потому, что я пыталсямного вещей, поэтому я изменил некоторые теги, чтобы новые вещиork.

Единственное, что до сих пор работало, но не давало мне действия Show, просто обычный диалог с некоторыми опциями: #opeaner one

Большое спасибо!очень ценится!

1 Ответ

0 голосов
/ 19 сентября 2010

Попробуйте указать метод в вашей ссылке (: в этом случае получите get), чтобы достичь действия show:

<%= link_to 'Show', trip, 'id' => 'showdialog', :remote => true, :method => :get %>
...