Projeto: Vermelho

logs of development
スポンサーサイト

一定期間更新がないため広告を表示しています

| - | | - | -
[Rails]acts_as_taggable_on_steroidsでpagination
以下,すでにページ無いのでキャッシュから引用

あるタグを使っているモデルを取得するのは簡単なのだけれど、これのページネーション実装が結構面倒。もしや自分で組むのか、と思ったが

Ruby on Rails: acts_as_taggable pagination
 http://railsruby.blogspot.com/2006/03/actsastaggable-pagination.html

のコメントに答えがあった。素晴らしい。acts_as_taggable用のようだけど、acts_as_taggable_on_steroidsでも使える。

@document_pages, @documents = paginate :documents,
{:conditions => [“title like ? and tags.name=?”,“%#{query_text}%”,tag],
:joins => “INNER JOIN taggings ON documents.id = taggings.taggable_id INNER JOIN tags ON taggings.tag_id = tags.id”,

:order=>“created_at DESC”,
:select=>“documents.*”

}

titleはまぁ関係がないと思うけれど、それ以外は十分参考になる。というかこれを真似して実装した。
| Pg_Rails | 12:08 | comments(0) | trackbacks(0)
[rails]FCKeditorでword感覚のtextareaの生成
FCKeditor(http://fckeditor.caronsoftware.com/)

リポジトリ:
http://rubyforge.org/projects/fckeditorp/trunk

使い方.
layoutのheadに以下挿入
<%= javascript_include_tag :fckeditor %>

newやedit等のviewファイルに挿入
<%= fckeditor_textarea('モデル名', :フィールド名) %>

以上
| Pg_Rails | 11:35 | comments(0) | trackbacks(0)
[Rails]サニタイズする.
viewファイルでhtmlをサニタイズする場合は,hメソッド
<%=h "<br />"%>
→<br />

view以外では
ERB::Util.h("")

タグをサニタイズするなら,sanitizeを使う
http://d.hatena.ne.jp/moro/20080416/1208311316
http://wota.jp/ac/?date=0823
http://rubist.blog77.fc2.com/blog-entry-119.html

テキストエリアに動画や画像をエンベッドする場合など,hでサニタイズすると表現してくれなくなる.sanitizeならok.

※white_listというプラグインを使えば,より細かく設定できるようだ.
| Pg_Rails | 14:24 | comments(1) | trackbacks(0)
[rails]/n(改行コード)をhtmlタグbrに変換する
simple_format(h @body)

ただし,改行コードが複数続くとpに変換されるもよう.注意.
http://d.hatena.ne.jp/drillhands/20070208/1170958606
| Pg_Rails | 13:55 | comments(0) | trackbacks(0)
Rubyインストール後の.cshrcのPATHセットの注意
さくらインターネットなど,ホスティングサービスで自分のHOMEにRubyをインストールした場合,PATHを設定する.そのときの注意.

http://d.hatena.ne.jp/GARAPON/20080602

% vi ~/.cshrc
set pathに以下の記述を追加
------------------------------------

$HOME/local/ruby/bin
------------------------------------
% source ~/.cshrc
% ruby -v

ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-freebsd6.1]
↑のが表示されればOK


このとき…
http://blog.setunai.net/20080227/さくらインターネットにRuby1.9をインストールしてみ/
$HOME/.cshrcのpathに$HOME/local/binを追加(※/usr/local/bin/より先に書かないと有効にならない)
| Pg_Ruby | 22:44 | comments(0) | trackbacks(0)
db:migrateしたら undefined symbol: RSTRING_PTR
さくらインターネットのエラー.
sqlite3-rubyの問題.
http://d.hatena.ne.jp/GARAPON/20080602
http://www.metareal.org/2007/06/14/ruby-extension-struct-rstring-macros/

/ruby_ROOT/lib/ruby/1.8/i386-freebsd6.1/ruby.h(さくらインターネットの場合) を編集して以下の2行を追加してあげる。
#ifndef RSTRING_PTR
# define RSTRING_PTR(s) (RSTRING(s)->ptr)
#endif
#ifndef RSTRING_LEN
# define RSTRING_LEN(s) (RSTRING(s)->len)
#endif


この後にsqlite3-rubyをビルドしなおす。

gem uninstall sqlite3-ruby
gem install sqlite3-ruby
rake db:migrate

これでやっとdb:migrateが成功

…じゃなかったら,Ruby1.8.6以上をインストールする.
| Pg_Rails | 17:48 | comments(0) | trackbacks(0)
さくらインターネットにRMagickインストールでerror code 71
さくらインターネットにRuby on Rialsをインストールし,RMagickをgem インストールしたところ以下のようなエラー.


make install
/usr/bin/install -c -o root -g wheel -m 0755 RMagick2.so /home/gugen/lib/ruby/gem/gems/rmagick-2.5.0/lib
install: /home/gugen/lib/ruby/gem/gems/rmagick-2.5.0/lib/RMagick2.so: chown/chgrp: Operation not permitted
*** Error code 71

Stop in /home/gugen/lib/ruby/gem/gems/rmagick-2.5.0/ext/RMagick.

Gem files will remain installed in /home/gugen/lib/ruby/gem/gems/rmagick-2.5.0 for inspection.
Results logged to /home/gugen/lib/ruby/gem/gems/rmagick-2.5.0/ext/RMagick/gem_make.out


解決策は以下の通り。

さくらインターネットでrubygemsのインストールでコケる場合の対処

/usr/local/lib/ruby/1.8/i386-freebsd6/rbconfig.rb を見ると
> CONFIG["INSTALL"] = ENV['RB_USER_INSTALL'] ? '/usr/bin/install -c' : '/usr/bin/install -c -o root -g wheel'
とかいう記述がある
よって
setenv RB_USER_INSTALL true
とかコマンドラインで入力してから rubugemsをインストールすればいい
(試してないけどたぶんrubygemsのインストール時1回のみでおk)


とのこと.
すばらしい.
元ネタはこちら.
http://playet.jugem.jp/?eid=56
| Pg_Rails | 21:08 | comments(2) | trackbacks(0)
GNOMEが出なくなった.
FedoraCore6にログインしたら,X-Window-systemがTWMになってしまった.
なぜなぜ?

再インストールすればいいと分かって一安心.
http://d.hatena.ne.jp/dadadadan/20070219/1171891708

# yum groupinstall "GNOME Desktop Environment"
| Linux_General | 20:59 | comments(0) | trackbacks(0)
[Rails]RMagickでLoad Error(PATHが通ってない?)
エラーがでて正常に起動しない.
/usr/lib/ruby/gems/1.8/gems/rmagick-2.4.0/lib/RMagick2.so: undefined symbol: SketchImage - /usr/lib/ruby/gems/1.8/gems/rmagick-2.4.0/lib/RMagick2.so
This error occurred while loading the following files:
RMagick
RMagick2.so

http://rubyforge.org/forum/forum.php?thread_id=25028&forum_id=33
こんなのとか
http://blog.livedoor.jp/nishiyan68k/archives/2006-06.html
こんなのとかを見ると,
export LD_LIBRARY_PATH=/usr/local/lib
するべし,とある.

でも動かない.そこで,http://rmagick.rubyforge.org/install-faq.htmlを見る.

RMagick1と2では動作が違うらしい.
ImageMagick6.3.0未満の場合はRmagick1がいいとのこと.
インストールされているImageMagickとRMagickのバージョンを見てみると.
yum list | grep ImageMagick
→ImageMagickは6.2.8
gem list
→RMagickは2.4.0
このせいだろうか.

RMagickをアンインストールして
gem uninstall rmagick
RMagickのインストールできるバージョンを調べる.
gem search -remote rmagick
1.7.1〜2.4.0まである.
そこで,1系の最新版1.15.14をインストール
gem install rmagick --version 1.15.14

さあ,どうでしょうか.
こんどはファイルがないと言われました.FC6だからか.FC8では問題なかった.
no such file to load -- RMagick

と調べたら,あった.FC3へのインストールの手順.
http://vermelho.jugem.jp/admin/?mode=entry&eid=121
このコメントにFC6への手順があった.

まず,現在インストールされているRMagickをアンインストール.
gem uninstall rmagick -y

For Fedora Core 6 (FC6), the following worked for me:
sudo yum install GraphicsMagick
sudo yum install GraphicsMagick-devel
sudo yum install ruby-devel
sudo gem install rmagick ―no-rdoc ―no-test
If I don’t turn off the rdoc, then I get other errors about documentation.


まだ,ダメ.
そこで,ImageMagickのパスを再度チェック.
find / -name "ImageMagick-6.2.8"
…あ,/usr/lib/ImageMagck-6.2.8だった(T_T)

再度,Pathを通す.
export LD_LIBRARY_PATH=/usr/lib
echo $LD_LIBRARY_PATH=/usr/lib

やっぱりだめ.
今度はここ.
http://blog.livedoor.jp/endo0322/archives/50958952.html

  ☆ ☆ ☆

最終的には…やっと解決.もう一度再インストールからやりなおし.
1.ImageMagickをsourceからインストール
ダウンロードしてコンパイル
2.RMagickをインストール
gem install rmagick
3.ImageMagickの環境変数を設定
export LD_LIBRARY_PATH=/usr/local/lib

→ここで例外発生.
libMagickCore.so.1がないと言われる.
わからーんと思ってしらべて発見.
http://programmers-blog.com/articles/2008/05/04/rmagick-shared-libraries-problem
libディレクトリに移動して,
cd /lib
シンボリックリンクをつくる.
ln -s /usr/local/lib/libMagickCore.so.1

そのほか,同じようにエラーするので,まねして設定.
ln -s /usr/local/lib/libMagickWand.so.1
ln -s /usr/local/lib/libMagickCore.so.10
ln -s /usr/local/lib/libMagickWand.so.10
ln -s /usr/local/lib/libMagick.so.1

これで動くようになった…長かった(T_T).
| Pg_Rails | 14:27 | comments(1) | trackbacks(0)
[Rials]restful_authentication導入後にモデルを変更する場合
./script/generate authenticated user sessions
として,Userモデルを作った場合

その後,フィールドを追加したら,かならず,モデルのクラスのattr_accessibleにフィールド名を追加するのを忘れずに.

「#anything else you want your user to change should be added here.」の下あたり.

変更前
attr_accessible :login, :email, :password, :password_confirmation

変更後(introductionフィールド追加)
attr_accessible :login, :email, :password, :password_confirmation, :introduction
| Pg_Rails | 12:11 | comments(0) | trackbacks(0)
PROFILE
CATEGORIES
LINKS
CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     
<< June 2008 >>
SELECTED ENTRIES
ARCHIVES
モバイル
qrcode
SPONSORED LINKS