Поиск:

Закрытая темаСоздание новой темы Создание опроса
> will_paginate 
V
    Опции темы
Лена
Дата 21.12.2009, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: нет
Всего: 11



Научите, как установить will_paginate. Беру инструкцию отсюда: http://wiki.github.com/mislav/will_paginate/installation Пишу:
gem install will_paginate
ERROR:  could not find will_paginate locally or in a repository
Наверное, надо как-то указать ссылку на wiki.github.com 

Какая разница устанавливать will_paginate как gem или как плагин?

PM MAIL   Вверх
source777
Дата 21.12.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(Лена @  21.12.2009,  11:59 Найти цитируемый пост)
Какая разница устанавливать will_paginate как gem или как плагин?

Gem'ы могут быть совместно использованы разными приложениями на хостинге, их удобнее подключать, управлять их версиями и нет необходимости возиться с git submodules как в случае с плагинами.


Цитата(Лена @  21.12.2009,  11:59 Найти цитируемый пост)
gem install will_paginate
ERROR:  could not find will_paginate locally or in a repository

Покажи вывод gem -v
должно быть 1.3.5
Если у тебя более старая версия 1.3.x, выполни gem update --system
Если у тебя более старая версия 1.2.x, выполни: 
Код

gem install rubygems-update 
update_rubygems


После того как обновишь RubyGems до 1.3.5 выполни gem tumble


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Лена
Дата 21.12.2009, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: нет
Всего: 11



Цитата(source777 @  21.12.2009,  12:47 Найти цитируемый пост)
Покажи вывод gem -v



>gem -v
1.1.1
>gem install rubygems-update 
Bulk updating Gem source index for: http://gems.rubyforge.org/
Bulk updating Gem source index for: http://gems.rubyforge.org/
ERROR:  Error installing rubygems-update:
    rubygems-update requires builder (>= 0)
>
PM MAIL   Вверх
source777
Дата 21.12.2009, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(Лена @  21.12.2009,  14:47 Найти цитируемый пост)
>gem -v
1.1.1

Это уже более тяжелый случай, надо переустанавливать RubyGems вручную, ну или воспользоваться чем-нибудь вроде Bitnami RubyStack.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Лена
Дата 21.12.2009, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: нет
Всего: 11



Импортировала свой проект из 3dRails 1.2 в 3dRails 2.0. Протокол в этой среде у меня получился такой:
>gem -v
1.2.0
>gem install rubygems-update 
Successfully installed rubygems-update-1.3.5
1 gem installed
Installing ri documentation for rubygems-update-1.3.5...
Installing RDoc documentation for rubygems-update-1.3.5...
Could not find main page README
Could not find main page README
Could not find main page README
Could not find main page README
>update_rubygems
Unknown command: 'update_rubygems'
>gem install will_paginate
Successfully installed will_paginate-2.3.11
1 gem installed
Installing ri documentation for will_paginate-2.3.11...
Installing RDoc documentation for will_paginate-2.3.11...
>

Судя по всему will_paginate установился.
PM MAIL   Вверх
shine
Дата 21.12.2009, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 20.10.2006

Репутация: 2
Всего: 5



Цитата официальной инструкции по will_paginate:

To enable the library your Rails 2.0.x or 1.2.x project, require it in “config/environment.rb”

Код

Rails::Initializer.run do |config|
  ...
end

require "will_paginate"


Это было сделано?
--------------------
An investment in knowledge always pays the best interest. © Benjamin Franklin
PM MAIL   Вверх
Лена
Дата 21.12.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: нет
Всего: 11



Нет глубокого понимая как адаптировать эту штуку под мой код...
Вроде все сделала, но естественно у меня не работает.  smile 
class Product < ActiveRecord::Base
  has_many :line_items
    cattr_reader :per_page
    @@per_page = 10
    
def self.find_products_for_sale
     find(:all, :order => "title")
   end
И т.д.


def index
      @board = Product.find_products_for_sale
      @posts, @page = Product.paginate_all_by_ board _id(@board.id, :page => params[:page])
    end


Добавила: require "will_paginate"

А в представлении добавила:
<%= will_paginate @posts %>

Ошибка:
undefined method `paginate_all_by_ board _id' for Product:Class


Я не понимаю как правльно строиться эта строка: Product.paginate_all_by_ board _id
Думала так: Product.paginate_all_by_ product _id то же самое...
PM MAIL   Вверх
source777
Дата 21.12.2009, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(Лена @  21.12.2009,  18:26 Найти цитируемый пост)
Нет глубокого понимая как адаптировать эту штуку под мой код...

А у тебя есть такая странная необходимость? В 99.9% случаев достаточно просто использовать gem согласно документации, а не адаптировать его под что-то...

Цитата(Лена @  21.12.2009,  18:26 Найти цитируемый пост)
def index
      @board = Product.find_products_for_sale
      @posts, @page = Product.paginate_all_by_ board _id(@board.id, :page => params[:page])
    end


Лен, скажи честно, ты по-английски хорошо понимаешь? Почему ты берёшь кусок из документации в котором описывается как можно передавать paginate параметры аналогично find и конструировать аналогичные мета-методы, когда тебе достаточно самого простого варианта использования:
Код

def index
  @products = Product.paginate :page => params[:page]
end

?




--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Лена
Дата 21.12.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: нет
Всего: 11



Цитата(source777 @  21.12.2009,  19:15 Найти цитируемый пост)
@products = Product.paginate :page => params[:page]


Этот вариант я пробовала:
undefined method `paginate' for Product:Class

Добавлено через 4 минуты и 26 секунд
Ошибка пропала после перезапуска сервера... Однако никакого разбияния страниц внизу не наблюдаю... smile 
PM MAIL   Вверх
source777
Дата 21.12.2009, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(Лена @  21.12.2009,  19:39 Найти цитируемый пост)
Однако никакого разбияния страниц внизу не наблюдаю... smile  

А у тебя точно есть более 10 продуктов?

Добавлено через 58 секунд
Цитата(Лена @  21.12.2009,  18:26 Найти цитируемый пост)
<%= will_paginate @posts %>

С какой стати @posts, вместо @products?


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Лена
Дата 21.12.2009, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: нет
Всего: 11



Все, вроде заработало. smile 
@products  = Product.paginate :page => params[:page], :order => 'title', :per_page => 10

<%= will_paginate @products  %>

И на русском:
в environment.rb в самый низ пишем
WillPaginate::ViewHelpers.pagination_options[:prev_label] = '<< Предыдущая'
WillPaginate::ViewHelpers.pagination_options[:next_label] = 'Следующая >>'


Это рекомендуют писать в initializers/will_paginate.rb
но я такого файла в своем дереве не обнаружила...


PM MAIL   Вверх
Лена
Дата 21.12.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: нет
Всего: 11



Как можно улучшить код? Если перейти по ссылке внизу пагинатора, то ссылка будет http://localhost:3000/store?page=2
Если пользователь в строке адреса напишет так: http://localhost:3000/store?page=vv то будет ошибка. Как ее перехватить?

Это сообщение отредактировал(а) Лена - 21.12.2009, 20:56
PM MAIL   Вверх
source777
Дата 21.12.2009, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(Лена @  21.12.2009,  20:10 Найти цитируемый пост)
@products  = Product.paginate :page => params[:page], :order => 'title', :per_page => 10
Если пользователь в строке адреса напишет так: http://localhost:3000/store?page=vv то будет ошибка. Как ее перехватить?


Код

page = params[:page].to_i
@products  = Product.paginate :page => (page==0 ? 1 : page), :order => 'title', :per_page => 10



Цитата(Лена @  21.12.2009,  20:10 Найти цитируемый пост)
Это рекомендуют писать в initializers/will_paginate.rb
но я такого файла в своем дереве не обнаружила...

Ну так создай. Ты ведь читала про initializers? Инициализатором может быть любой rb-файл в этой папке.

Это сообщение отредактировал(а) source777 - 21.12.2009, 21:55


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Лена
Дата 21.12.2009, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: нет
Всего: 11



Большое спасибо! Очень красивое решение!  smile 
PM MAIL   Вверх
AndreyDr
Дата 21.1.2011, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 22.9.2010

Репутация: нет
Всего: нет



Здравствуйте, я установил и настроил will_paginate, но хочется чтобы url был вида /page/1, вместо /articles?page=1. Если кто уже решал такой вопрос, подскажите пожалуйста или дайте ссылку на туториал. Заранее спасибо

Модератор: Пожалуйста, один топик - один вопрос, один топик - один топикстартер. 
Создай новую тему для своего вопроса.


Это сообщение отредактировал(а) source777 - 22.1.2011, 14:34
PM MAIL ICQ   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.