Rails

CRUDのRouting 設定とHelperメソッド

いろいろとひっかかてしまうので、 Rails3 のCRUDのRouting 設定と、その設定によって生成されるHelperメソッドの関連について整理してみました。 sites という コントローラーを例にしています。 Routingの定義 routes.rb で (ActionDispatch::Routing::Map…

attachment_fuプラグインの保存先を変更

前回、attchment_fuでとりあえず画像アップロードをしてみたが、今回、保存先と画像を参照するurlを変更する実装を行っていみる。 アプリケーションとは別のディレクトリで画像を管理したいということと、 railsではなくapacheで画像のリクエストを処理させ…

attachment_fuプラグインで画像アップロード

前提 RMMagicをインストールしておく。 インストール railsアプリケーションのトップでscript/pluginを実行してインストール>ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/attachment_fu 今回の例 既存の商品モデル(product)…

i18nの整理

Rails2.2のi18nの使い方を整理しておきましょうっと。 初期化 「/config/initializers/locale.rb」で基本の設定を行う。 主な設定属性は以下のとおり。 I18n.load_path 翻訳テキストファイルのパス I18n.default_locale デフォルトの言語 I18n.locale 現在の…

cookieを保持、参照するplugin

クッキーの値をDBに格納しておき(Visitorというモデル名にする)、 次回同じユーザがアクセスしたときに格納しておいた情報を参照できるようにするというもののPluginを作ってみました。 マイグレーション まず,cookieを保存しておくテーブルを生成。Pluginの…

cookieで前回アクセス時の情報を復元

クッキーの値をDBに格納しておき、 次回同じユーザがアクセスしたときに格納しておいた情報を参照できるようにするするためのベースの仕組みの試作を行ってみました。 テーブル定義 まず,cookieを保存しておくテーブルは以下のように定義します。 class Crea…

will_paginateでのDISTINCT指定など

railsでwill_paginate使う場合で結果をdistictしようとしてすこしはまったのでメモです。 selectオプションにDISTINCTを指定 まず、単純にpaginateメソッドのselectオプションに「DISTINCT」を指定してみました。 self.paginate(:all, :joins => joins, :con…

Page not found

マッチするルーティンが無かったときに 「Page not found」のページを出すためのはどうするのだったか? と調べてみる。"*anything"というパターンに対してルールを書けばよかったんでしたね。 map.conect "*anything", :controller => '/error', :action => …

raill2.2.2へ更新

railsの2.0.2でアプリケーションを作っていましたが、今回2.2.2へアップグレードしてみました。 環境はMacBookPro上のMacOSX10.5です。 gemでrailsをインストール とりあえず、あまり考えずの「gem update rails」とインストールしてみました。それから,アプ…

ユーザ認証の実装

ログインページの実装を行ってみました。認証の必要なページが要求されるとログインページに遷移、認証に成功すると要求されていたページへ遷移できるというものを実装してみました。また認証のためのUserモデルは先週の記事に書いたものを使用しました。 フ…

パスワードを暗号化して格納

railsでユーザ認証を行うためのモデルを実装してみました。データベース上では、パスワードは平文ではなく、MD5で暗号化したかたちで格納されるよう実装しました。 モデルの生成 railsのgenerateスクリプトでUserモデルを生成します。 % ruby script/generat…

パスワードを暗号化して格納

railsでユーザ認証を行うためのモデルを実装してみました。データベース上では、パスワードは平文ではなく、MD5で暗号化したかたちで格納されるよう実装しました。 モデルの生成 railsのgenerateスクリプトでUserモデルを生成します。 % ruby script/generat…

gettextで日本語化(メッセージのカラム名を)

昨日の続きで、validateメッセージのカラム名も日本語化してみます。 タスクの設定 ファイルの変換を行うタスクをRakeFileに追加しておきます。 desc "Update pot/po files." task :updatepo do require 'gettext/utils' GetText.update_pofiles("cart", #テ…

gettextで日本語化(とりあえずvalidationメッセージ)

rails/gettextを使用したマルチルンガル対応として、まずValidateのメッセージがとりあえず日本語になるようしてみました。 gettextパッケージをインストール gemを使ってgettextパッケージをインストールします。 #sudo gem install gettext下は、このイン…

Selectボックスの監視

Selectボックスで選択を行うとその内容によって他のSelectボックスの内容を更新するというのをobserve_fieldヘルパーを使って実装してみました。 これは、フィールドの値変更を監視、変更が行われるとJavascriptの非同期通信API(Ajax)を使って他方のフィール…

mongrel-apacheの連携設定

MacOSX10.5上でMongrelをApacheに連携させるよう設定してみました。 とりあらえず、バランサーとかプロキシーは考えず、単純にApacheからmongrelへRewriteする設定を行いました。 Mongrel を起動 > mongrel_rails start -p <待ち受けポート> -r <アプリケー…

簡単な検索フォーム

簡単な検索フォームを作ってみたので、メモしておきます。 作成したviewのフォームの記述を以下のようのform_forヘルパーを使用して作ってみました。 <table id="search"> <% form_for (:conditions, @conditions, :url=>{:controller => '/customer/search', :action => 'resul</table>…

has_many(through)アソシエーションでの検索(続き)

きのうの続きです。 will_pagination 以下のようにしてwill_paginationを使った場合も使えそうです。 products = Product.find(:all, :include => [:keywords], :conditions => ["keywords.word = ?", "beatles"] , :order => "price", :page=> 1, :per_page…

has_many(through)アソシエーションでの検索

Activerecordでリレーションテーブルを介してテーブルを関連づけ、関連元のテーブルを検索するさいに関連付けられた先のテーブル(=has_manyで指定するテーブル)を検索条件に加える仕方を調べたのでメモリます。今回の例は商品(products)とその商品を検索する…

railsアプリケーション作成後のデータベース設定

railsアプリケーション作成後のデータベースの設定、毎度の操作なのでメモっておきましょう。 環境は、Mac OSX1.5(Leppard), ruby1.8.6, rails2.0.2です。 データベースはMySQL5です。 以下の操作は、全てターミナル上です。前提は、mysqlがインストールされ…

ページの部分を定期的に更新

rails上のAjax用ヘルパーを使って周期的にページを部分的の更新するのを試してみる。 アクション これは、基本は通常のページと同じようにアクションメソッドを実装。 周期的に更新される部分の内容を表示するためのVIEWを作る これも、通常のViewと同じよう…