2015-10-23 3 views
1

Я пытаюсь отобразить индексный указатель внутри моего приложения ruby-on-rails. Как я визуализирую представление индекса, изнутри представления, передающего массив вещей для отображения? Использование link_to.Как визуализировать индексный указатель, изнутри представления в ruby-on-rails

Я не хочу перенаправлять контроллер, я просто хочу, чтобы link_to вид передавал ему переменные, которые ему нужны, как я могу это сделать? EDIT: Я пытаюсь создать функциональность типа страницы в индексе модели моей статьи. Так, например, у меня около 400 статей, и когда вызывается действие индекса в контроллере статьи, оно, конечно, отображает индексное представление, которое вызывает частичное для каждой статьи в массиве «@articles», переданное действием индекса элемента управления статьи ,

Таким образом, в представлении, я пытаюсь сделать что-то вроде:

<% count = 0 %> 
    <% @articles.each do |article| %> 
     <% if count <10 %> 
     <%= render partial: 'index_articles', locals: {article: article} %> 
     <% count = count + 1 %> 
     <% end %> 
    <% end %> 
    <% @articles = @articles.drop(10) %> 
    <% if @articles.any? %> 
     <%= link_to "Next", 'articles', locals: {@articles => @articles} %> 
    <% end %> 

Спасибо расширенный за все в вашей помощи.

ответ

0

Возможно, ваша проблема связана с именем _index.html.erb. У вас может быть другой файл с именем index.html.erb, который просто отображает _index.html.erb.

Если вам нужно полное руководство по использованию AJAX, посмотрите на railscast. Если вы не используете AJAX, и вы просто хотите его отобразить, то вы не используете link_to. Вы просто делаете <% = render: index%>.

+0

У меня уже есть это, я знаю, как делать основные рельсы типа вещей. Я пытаюсь напечатать конкретное подмножество конкретной модели. Поэтому, используя индекс, будет создан список всех активных записей этой модели, теперь я хочу их отображать, например, 20 за раз. Итак, сделайте 20, затем пользователь нажимает следующее, и появляется еще 20. Это функция типа страницы. – Leon92

+0

И я уже знаю, как сделать частичный вид, я хочу link_to, чтобы отобразить другое представление. – Leon92

1

Вы должны будете использовать render command, вероятно с partial:

<%= render "controller/index", collection: ["your", "array"], as: :object_name %> 

Вы должны вызвать действие контроллера для создания этого. Вы не можете просто загрузить его на экране, если она не была предварительно внутри JavaScript для чего-то:

#View 
<%= link_to "Index", controllers_path(ids: ["1","2"]), remote: true %> 

#app/controllers/your_controller.rb 
class YourController < ApplicationController 
    def index 
     @posts = request.xhr? Post.find(params[:ids]) : Post.all 
     respond_to do |format| 
     format.js #-> app/views/controller/index.js.erb 
     format.html 
     end 
    end 
end 

#app/views/controller/index.js.erb 
$(".element").html("<%=j render 'index' %>"); 

Есть несколько проблем с этим подходом ...


Flow

Прежде всего, ваш поток вашего приложения должен быть как можно более структурированным.

Короче говоря, если вы вызываете index вид внутри другого действия, это не индексный указатель больше не существует.

То, что вы должны смотреть на то, как использовать частично в вашем приложении:

#app/controller/views/_partial.html.erb 
<%= post.title %> 

Таким образом, вы можете адаптировать свой index вид и вашу другую страницу, чтобы использовать парциальное в своих макетах действий:

#app/controller/views/index.html.erb 
<%= render "partial", collection: @posts, as: :post %> 

Это позволит вам «повторно использовать» код так, как вы хотите. Это будет гораздо более уместным, чем попытка вызвать другие действия/представления.

-

Ресурсы

Во-вторых, вы хотите посмотреть, как ваши функции приложения.

Ваш индекс Представление предназначено для отображения всех предметов для определенного объекта. Хотя вы можете изменить это, как хотите, факт остается фактом, что вы должны k eep some structure.

enter image description here

Вы должны прочитать о путях ваших действий, и как они предназначены для работы в приложении. Это даст вам некоторую перспективу в отношении маршрутов Rails resourceful и о том, как вам придется называть конкретные маршруты конкретными действиями.

+0

Здравствуйте, спасибо за ваш ответ. Тем не менее, я понимаю маршруты действий, и я не пытаюсь удалить, как работает эта базовая функциональность. Я пытаюсь (без использования драгоценного камня) в основном создавать набор страниц. Например, у меня около 400 статей, и я хочу индексировать их не более чем на 10 страниц. Таким образом, у меня уже есть частичная (для отображения каждой статьи), поэтому views/articles/index.html.erb пытается отображать 10 статей за раз, затем удалять эти 10 статей из статей, а затем, когда кто-то нажимает дальше, d хотел бы отобразить этот новый список статей с 10 меньше на новой странице. – Leon92

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