модальный twitter bootstrap с ruby ​​on rails

Я столкнулся с небольшой проблемой и головной болью, так как я не уверен, что я хочу сделать можно даже с RoR.

Немного справочной информации :У меня есть приложение с несколькими контроллерами... и я хотел бы работать с двумя из них для этого модального примера. Первый — это контроллер пользователей _, а другой — контроллер рекомендаций _.

Вот что я пытаюсь сделать. :В представлении пользовательского индекса у меня есть списки сообщений. В каждом посте есть кнопка «рекомендовать». Если пользователь нажимает на нее, он/она отправляется на страницу индекса рекомендаций, где может искать и находить пользователя, с которым он/она хотел бы поделиться публикацией. Причина, по которой я настроил его таким образом, заключается в том, что модель рекомендаций создает рекомендательные отношения.

Мне бы хотелось, чтобы, когда пользователь нажимает кнопку «Рекомендовать» на странице индекса пользователей, появлялось модальное окно (, которое обращается к контроллеру рекомендаций ), и пользователь мог искать пользователя, которого он/она хотел бы поделиться публикацией с. По сути, я хочу знать, можно ли получить доступ к контроллеру рекомендаций через страницу просмотра указателя пользовательского контроллера.

Если это не так, есть ли обходной путь? Я могу опубликовать код, который у меня есть, если он будет полезен, но я не уверен, что это поможет в данном случае --, поскольку я пытаюсь понять, возможно ли вообще сделать то, что я пытаюсь сделать.

Спасибо!

Подробнее:

рекомендации _контроллер:

  def index
    @user = Search.find_users(params[:name], current_profile)

    respond_to do |format|
      format.html
      format.js
    end   
  end

index.js.haml (находится в папке представлений/рекомендаций)

  :plain
    $(#my-modal).show();

index.html.haml (находится в папке представлений/рекомендаций)

  = form_tag post_recommendations_url, :method => "get" do
    = text_field_tag :name, '', :class => "span12", :placeholder => "Please enter the name of the users you would like to share this post with."
    %center
      = submit_tag "Search", :class => "btn btn-primary"

index.html.haml (находится в папке view/posts)

  %a{:href => "#{post_recommendations_path(post)}", :remote => true}
    %i.icon-share.icon-large
    Recommend Post

#my-modal.modal.hide.fade
 .modal-header
    %a.close{"data-dismiss" => "modal"} ×
    %h6 This is a header
 .modal-body
  %p This is where I would like the contents of the index.html.haml file, located in the view/recommendations folder to appear.

Part 2 :Отображение результатов поиска внутри модального/частичного

Matzi, на данный момент,пользователь щелкает ссылку рядом с публикацией, которую он хочет порекомендовать. Эта ссылка отображает модальное окно с частичным (_рекомендацией.html.haml )внутри него.

Этот частичный (теперь внутри модального )содержит поиск form_tagи код для отображения всех пользователей, которые соответствуют результатам поиска. К сожалению, когда я пытаюсь запустить поиск, вводя имя и снова нажимая кнопку поиска (, которая теперь находится внутри модального окна ), я перенаправляюсь на следующий URL-адрес вместо отображения результатов внутри модального окна.

http://localhost:3000/posts/2/recommendations?utf8=%E2%9C%93&name=Test&commit=Search

вот как выглядит мой обновленный index.html.haml (, расположенный в папке view/posts):

= link_to 'Recommend Post', post_recommendations_path(post), :remote => true, "data-toggle" => "modal"

#my-modal.modal.hide
.modal-header
  %a.close{"data-dismiss" => "modal"} ×
  %h6 
    %i.icon-share.icon-large
    Recommend Post
.modal-body
  #modal-rec-body
    %p *this is where _recommendation.html.haml is rendered*

обновленный index.js.haml

:plain
  $("#modal-rec-body").html("#{escape_javascript(render('recommendations/recommendation'))}");

  $('#my-modal').modal({
    keyboard: true,
    show: true
  });

_рекомендательный.html. haml

.span12
  = form_tag post_recommendations_path, :method => "get" do
    = text_field_tag :name, '', :class => "span12", :placeholder => "Please enter the name of the user you would like to share this post with.", :style => "max-width:520px;"
    %center
      = submit_tag "Search", :class => "btn btn-primary", :remote => "true"

- @user.each do |i|
  - unless current_profile == i
   .row-fluid
     .span6
       .row-fluid
         .well{:style => "margin-left:0px;"}
           .row-fluid
             .span2
                =image_tag i.avatar(:bio), :class=> "sidebar_avatar"
             .span6
                %dl{:style => "margin:0px"}
                  %dt
                    %i.icon-user
                    Name
                  %dd= i.name
                  %dt
                    %i.icon-map-marker
                    Location
                  %dd= i.location
             .span4
                - form_for :recommendation do |r|
                  = r.hidden_field :friend_id, :value => i.account.id 
                  = r.submit "Send Recommendation", :class => "btn btn-primary"          

Проблема:К сожалению, кажется, что когда я нажимаю кнопку отправки (поиска )внутри модального окна, вместо того, чтобы отображать результаты внутри модального окна, оно -направляет браузер на post_recommendations_path (posts/post.id/recommendations). Я хотел бы отображать результаты поиска внутри модального окна, не перенаправляя его на путь рекомендаций публикации.

Как всегда, большое спасибо! Я чрезвычайно благодарен за вашу помощь --, и благодаря вам я стал намного лучше разбираться в AJAX. Спасибо!

9
задан slovak_100 8 May 2012 в 16:56
поделиться