2013-04-02 3 views
0

Я имею эту ссылку в представлении/пользователей/шоу:на link_to мыши заменить содержимое раздела с помощью AJAX

<%= link_to "Photos (#{@user.photos.count})", user_path(@user), id: "photo_link", remote: true %> 

Теперь, когда я нажимаю на ссылку выше, я хочу, чтобы изменить [1..6] в [1 ..- 1] без повторного просмотра/пользователи/шоу:

<section id="photo_galery"> 
    <% unless @user.photos[0].nil? %> 
    <% for photo in @user.photos[1..6] %> 
     <%= link_to image_tag(photo.photo.url(:subprofile_thumbnail), id: "subpics"), photo.photo.url(:original), id: "subprofile_photos", class: "fancybox", rel: "gallery01" %> 
    <% end %> 
    <% end %> 
</section> 

Как это сделать? Благодаря!

ответ

1

Вам придется выполнять изменение переменной со стороны контроллера.

Контроллер:

def show 
    @user = current_user 
    if request.xhr? 
    @photos = @user.photos[1..-1] 
    else 
    @photos = @user.photos[1..6] 
    end 
end 

Вид: show.html.erb

<section id="photo_galery"> 
    <%= render "photos"%> 
</section> 
<%= link_to "Photos (#{@user.photos.count})", user_path(@user), id: "photo_link", remote: true %> 

_photos.html.erb

<% unless @user.photos[0].nil? %> 
    <% for photo in @photos %> 
     <%= link_to image_tag(photo.photo.url(:subprofile_thumbnail), id: "subpics"), photo.photo.url(:original), id: "subprofile_photos", class: "fancybox", rel: "gallery01" %> 
    <% end %> 
    <% end %> 

show.js.erb (при использовании JQuery)

$("#photo_galery").html("<%= escape_javascript(render(:partial => 'users/show', :object => @photos)) %>"); 

Если вы используете прототип, вам нужно будет это сделать в контроллере.

Смежные вопросы