Like: ruby, ruby on rails, macosx, apple, textmate, linux, git, gity, ubuntu, gnome 2, Dub FX, Dropkick Merphys, android, google, The black keys, Prawn(rails), epub, vim,


Посты с тегом rubyonrails


Текст

авг 10, 2011
@ 10:58 pm
Постоянная ссылка
1 заметка

Особенности check_box_tag

<%= check_box_tag 'check_for[]', c.id %>

<%= check_box_tag 'check_for', c.id %>

Обе строчки рабочие, но в певом случае мы получим следующие параметры:

Parameters: {"check_for"=>["8", "10", "27"], "commit"=>"Submit", "authenticity_token"=>"P6V5lacVnxwPidemELGPse9LGvMrqWOh2BaLdLQ/YG0=", "utf8"=>"✓"}

А во втором при тех же исходных:

Parameters: {"check_for"=>["27"], "commit"=>"Submit", "authenticity_token"=>"P6V5lacVnxwPidemELGPse9LGvMrqWOh2BaLdLQ/YG0=", "utf8"=>"✓"}


Ссылка

мар 11, 2010
@ 10:48 am
Постоянная ссылка

TinyMCE + papperclip + jrails(jquery) »

UPD: ну очень сырой плагин



Текст

мар 27, 2009
@ 3:52 pm
Постоянная ссылка

Простая сортировка списков в rails

Допустим, в качестве примера, у нас есть некоторый список который мы хотим сортировать с минимальными действиями со стороны пользователя.

Стоит заметить, что этом примере я использую модель Page со следующими  полями:id(int), name(string), pos(int)

Итак, после генерации список должен выглядеть так:

<ul id=”sortlist”>
<li id=”item_1>Первый, пошел</li>
<li id=”item_2>Второй, пошел</li>
<li id=”item_3>Третий, пошел</li>
<li id=”item_4>Четвертый, пошел</li>
<li id=”item_5>Пятый, пошел</li>
</ul>

Еще один момент заключается в id тега li, как можно заметить он состоит и двух частей это item и какое то число. Число - это id из выше упомянутой таблицы. Зачем это нужно будет понятно ниже.

Следующий этап, сделать возможным перетаскивание пунктов внутри списка. Славься  RJS,  делается это одной строкой, а именно так:

<%= sortable_element “sortlist”, :url => { :action => ‘update_sorted_list’ } %>

sortable_element, во-первых - позволит двигать список с id = “sortlist”,  во-вторых - при перемещении любого из элементов списка(бросании) отправит запрос XMLHttpRequest методу update_sorted_list. В этом случае это будет массив значений id тега li(точнее того что идет после знака _ ) в том порядке в каком они будут отсортированы. Пример для наглядности: предположим мы решили, что пятый пойдет вторым и переместили его туда, тогда запрос будет таким [1,5,2,3,4]

Доступ в контроллере мы можем получить через params[:sortlist]. Как же нам сохранить результат? Все просто, так как нам передаются id  записей в таблице, нам всего лишь нужно сопоставить их с индексами в передаваемом массиве и эти индексы внести в таблицу в колонку  pos. Как это выглядит в коде контроллера:

def update_sorted_list
params[:sortlist].each_with_index do |id, p|
Page.update(id, :pos => p)
end 
render :nothing => true
end

Все, теперь все должно работать. Куда интереснее организация деревьев, но об этом потом как-нибудь.

P.S.
Чтобы список после перезагрузки выводился в правильном порядке  он должен быть отсортирован по колонке  pos это будет выглядеть как-то так

def index

@items=Page.find(:all, :order => “pos”)

…..

end


Ссылка

мар 3, 2009
@ 5:55 pm
Постоянная ссылка

Rails ajax таблицы »

Не читал, но советуют.


Текст

фев 16, 2009
@ 2:25 pm
Постоянная ссылка

Изображение и текст в ссылке

Иногда нужно сгененрировать подобную ссылку:

<a href=”/controller/action/1”>  <img src=”/images/img.png”> text </a>

Для себя эту задачу в  rails  я решаю так:

<link_to “#{image_tag(“/images/img.png”)}  text”, @pages>


Текст

янв 3, 2009
@ 3:11 pm
Постоянная ссылка

Apache + RubyOnRails

Для работы связки Rails + Apache я использовал passenger. При установке на CentOS5 был приятно удивлен инсталятором, который проверил не хватающие зависимости и вывел команды с помощью которых их можно установить(мелочь, а приятно). В конце установки он подробно написал, как нужно изменить конфиг apache. В целом установка passenger проста и подробно расписана на modrails.com. Если после установки возникают проблемы с запуском приложения рекомендую проверить следующие вещи:

  1. установлена поддержка баз данных которые вы используете 
  2. произведена миграция для production, rake db:migrate RAILS_ENV=”production”. 
  3. Apache  был перезапущен после всех манипуляций

Текст

дек 31, 2008
@ 4:23 pm
Постоянная ссылка

CentOS5 + RubyOnRails

Вот так просто и не навязчиво))

 
sudo yum install ruby
sudo yum install ruby-devel
sudo yum install rdoc
wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz
tar xfvz rubygems-0.9.4.tgz
cd rubygems-0.9.4
sudo ruby setup.rb
sudo gem install rails 
sudo gem install mongrel 

при установке sqlite3 не забудьте поставить sqlite-devel(в разных ос называется по разному)

sudo yum install sqlite-devel

sudo gem install sqlite3-ruby 


Текст

дек 29, 2008
@ 5:05 pm
Постоянная ссылка

Корректное отображение кодировки ROR + MySQL

Весь фокус в создании баз и задании кодировки по пумолчанию:

CREATE DATABASE `myproject_development` /*!40100 DEFAULT CHARACTER SET utf8 */;

CREATE DATABASE `myproject_production` /*!40100 DEFAULT CHARACTER SET utf8 */;

CREATE DATABASE `myproject_test` /*!40100 DEFAULT CHARACTER SET utf8 */;


Текст

дек 28, 2008
@ 1:16 am
Постоянная ссылка

Проблема mysql и rails 2.2.2

решение:

sudo env ARCHFLAGS=”-arch i386” gem install mysql — —with-mysql-dir=/usr/local/mysql —with-mysql-lib=/usr/local/mysql/lib —with-mysql-include=/usr/local/mysql/include -V


Текст

дек 24, 2008
@ 10:56 pm
Постоянная ссылка

Subversion и RubyOnRails

При изучении рельсов когда-нить обязательно наступает момент когда нужно разработку вести с помощью subversion. Причин этому может быть несколько, остановимся на том, что Вы всетаки решили его установить.

Установка в зависимости от платформы может быть разная и она довольно подробно описывается на тигрисе. Но, что делать дальше???

Шаг первый: создания хранилища

Делается это из под рута командой

svnadmin create name

Шаг второй: импорт уже разрабатываемого проекта

svn import existproject file:///name/project -m “Initial import”

Шаг третий: создание рабочей копии

svn checkout file:///name/project

Готово!

Завтра распишу подробнее…