[Rails] Ajax を使ったときの日本語の問題
EUC-JP を普通に使うと文字化けするのでこんな対処をしたのだけどこれでいいのだろうか。
require "iconv" class CardController < ApplicationController scaffold :card before_filter :to_eucjp after_filter {|c| c.response.body = Iconv.iconv("UTF-8", "EUC-JP", c.response.body).first} def to_eucjp params[controller_name].each_value{|v| v.replace Iconv.iconv("EUC-JP", "UTF-8", v).first} if params[controller_name] end end
[Rails] バカが往く on Rails ひと月分をまとめて表示
する機能を追加。
これがあった方が検索エンジン経由で検索されやすくなるかなと。
--
現在 WEBRick で公開してるわけだが、時間が経つにつれてだんだん重くなってくる。
立ち上げた直後の速度は結構速いのだけど mod_ruby とか fcgi 使えばもっと速くなるのだろうか。
[Rails] バカが往く on Rails 修正
本家のエントリが追記された場合に追記分がDBに更新されない問題を修正。
モデルの実装が何点も間違えていることに気づいたのでついでに書き換えておいた。
tDairy のいいところと不便なところ
Rails の勉強第 2 弾として Blog ツール作ってみようかと。というか scaffold でテンプレートを直せば Blog っぽくならなかなと。
tDiary しか使ったことがないので意見をもらう。
tDairyのいいところ
- 無料である
- → Rails だと利用者が限定されるなあ。ここみたいなレンタルサーバには設置出来ないよね
- スキン(テーマ)が自由にカスタマイズできる
- → スタイルシートの取り替えだけなくテンプレートも設定出来るからね
- プラグインが豊富かつ、作れる・作ってもらえる
- → Ruby サイコー!
- はてなやWikiなど様々な書式に対応している
- → これはこっちにでも再利用できるよね。 BitChannel スタイルで書きたい!
tDairyの不便なところ
- カテゴリを任意に並べ替えできない
- → ご希望のインターフェース書いてもらえばいいかな
- 記事やコメントを一括で管理できる機能がない
- → これもご希望のインターフェースを書いてもらえばいいかな
- 月別表示のさいに、その月の記事が表示されるだけなので目的の記事を探しにくい。記事表示だけではなく
- → このへんのリスト表示は Rails の得意なところだ
- コメント投稿フォームにURL記入欄がない
- → つけるかつけないかの問題なのでつけてみよう
- リンク元機能でリンク元は表示したいが、サーチワードは表示したくないなど柔軟な対応ができない
- → なんで分離出来ないんだろ。単なる実装依存の問題?
過去の記事を再編集するためのインタフェース強化か。一般的にこの需要は高いのかもしれない。
ただ Rails って掲示板の CGI を設置するような感覚では動かないよね。作るのは簡単だけど配布は難しそうだ。完成しても単なるオレ(だけが使う)ブログ実装なんだよな。勉強だからいいのだが。
[Rails] Rails を使い始めて
DB も scaffold も使わない超 Rails 入門書こうかと思ってたんだけど、ActionPack が理解できたときの感動をもう忘れつつあってやる気低下。でも自分はここを半年以上理解できなかったからなあ。
Rails をゲームの開発に使うことしか考えてなかったから scaffold の使い道はなかったし好きじゃなかったんだけど、一般的な Web アプリを作ろうとすると scaffold が激しく便利なことに気づく。
多少使ったところで感じた Rails いいところは Web の素人でもすんなり MVC が出来てしまうところ。もうひとつは記述量が少ないところ。オレ CGI → Rails は C から Ruby に移ったときくらいのオレってすげー感あり。
[Rails] pagination (簡単なページ管理) を使ってみた
<URL:http://wota.jp/ac/?date=20050629#p01> を参考にして改造。
# controller def list @pages, @entries = paginate(:entry, :per_page => 30, :order_by => 'bakaid DESC') end
# view <ul><% @entries.each do |entry| %> <li><%= entry.month %>月<%= entry.day %>日… <%= link_to(entry.title, {:action => "view", :id => entry}) %></li> <% end %></ul> <%= link_to "前を表示", { :page => @pages.current.previous } if @pages.current.previous %> <%= link_to "次を表示", { :page => @pages.current.next } if @pages.current.next %>
mixi 日記風に改造。
def list @pages, @entries = paginate(:entry, :per_page => 30, :order_by => 'bakaid DESC') @begin_idx = @pages.items_per_page * @pages.current.previous.to_i @end_idx = @pages.current.next ? @pages.items_per_page * (@pages.current.next.to_i - 1) : @entries.size + @pages.items_per_page * @pages.current.previous.to_i end
view にはこの一行を追加。
<%= "#{@begin_idx + 1}件〜#{@end_idx}件を表示" %>
動作サンプル (もう動いてないかも)。おぉ。