学校卒業と同時にブログタイトル変えるとき、
気分転換的にはてなからBloggerに移ってきたけど
どーもやっぱりなじまないからはてなにしよー。
⇨ http://d.hatena.ne.jp/akitsukada
気分転換的にはてなからBloggerに移ってきたけど
どーもやっぱりなじまないからはてなにしよー。
⇨ http://d.hatena.ne.jp/akitsukada
Suitable as the B6 notebook.
具体的には、SetucoCMSのCategoriesテーブル。ERDは↓こんなの
https://spreadsheets.google.com/spreadsheet/pub?hl=ja&hl=ja&key=0AsZ5eShbQ7T_dDJRRm5pdkJUUDlHQUVobnhPckFnWWc&output=html
外部キーの名前も、デフォルトの
こうした。
1 class CreateCategories < ActiveRecord::Migration 2 def self.up 3 create_table :categories do |t| 4 t.string :name, :null => false 5 t.integer :parent_id 6 t.timestamps 7 end 8 end 9 10 def self.down 11 drop_table :categories 12 end 13 end
こうした。
1 # -*- coding:UTF-8 -*- 2 class Category < ActiveRecord::Base 3 has_many :pages 4 5 has_many :children, :class_name => 'Category', :foreign_key => :parent_id 6 belongs_to :parent, :class_name => 'Category', :foreign_key => :parent_id 7 8 end
~/programming/ruby/SetucoCMSR$ rails c
Loading development environment (Rails 3.0.7)
ruby-1.9.2-p180 :001 > Category.all
=> []
ruby-1.9.2-p180 :002 > c = Category.create([
ruby-1.9.2-p180 :003 > {:name => 'cat1'},
ruby-1.9.2-p180 :004 > {:name => 'cat2', :parent_id => 1},
ruby-1.9.2-p180 :005 > {:name => 'cat3', :parent_id => 1},
ruby-1.9.2-p180 :006 > {:name => 'cat4', :parent_id => 2}
ruby-1.9.2-p180 :007?> ])
=> (snip)
ruby-1.9.2-p180 :008 > pp c
[#<Category id: 1, name: "cat1", parent_id: nil, created_at: "2011-06-02 10:56:44", updated_at: "2011-06-02 10:56:44">,
#<Category id: 2, name: "cat2", parent_id: 1, created_at: "2011-06-02 10:56:44", updated_at: "2011-06-02 10:56:44">,
#<Category id: 3, name: "cat3", parent_id: 1, created_at: "2011-06-02 10:56:44", updated_at: "2011-06-02 10:56:44">,
#<Category id: 4, name: "cat4", parent_id: 2, created_at: "2011-06-02 10:56:44", updated_at: "2011-06-02 10:56:44">]
=> (snip)
ruby-1.9.2-p180 :009 > pp c[0].children
[#<Category id: 2, name: "cat2", parent_id: 1, created_at: "2011-06-02 10:56:44", updated_at: "2011-06-02 10:56:44">,
#<Category id: 3, name: "cat3", parent_id: 1, created_at: "2011-06-02 10:56:44", updated_at: "2011-06-02 10:56:44">]
=> (snip)
ruby-1.9.2-p180 :010 > pp c[1].parent
#<Category id: 1, name: "cat1", parent_id: nil, created_at: "2011-06-02 10:56:44", updated_at: "2011-06-02 10:56:44">
=> (snip)
ruby-1.9.2-p180 :011 > pp c[1].children
[#<Category id: 4, name: "cat4", parent_id: 2, created_at: "2011-06-02 10:56:44", updated_at: "2011-06-02 10:56:44">]
=> (snip)
でけた!
昨日の続き。
こんな感じ。
<%= link_to(url, :target => '_blank') { 〜リンクを貼る文字列とか画像とか〜 } %>
ふむふむふむ
SetucoCMSでZendFramework使うときにも思ったんだけど、
こんなにビューヘルパーたくさんあって、
HTMLコーダーのみなさんは問題なくビューを編集できるのかしら???
分業できなくないですかね。
<a href="リンク先URL"> <span>文字列</span> <img src="画像パス" alt="あうあう"> </a>
<%= link_to リンク文字列, リンク先情報 %>こう?でもこれだと出力は
<a href="リンク先URL">リンク文字列</a>になっちゃう。
<%= link_to("文字列", リンク先URL) %>
し、imgタグもなんか入れにくい<% link_to "リンク先情報" do %>
<span>文字列</span>
<%= image_tag("画像パス", :alt => 'ほげほげ' %>
<% end %>出力<a href="リンク先URL"> <span>文字列</span> <img src="画像パス" alt="ほげほげ"> </a>できたわーい!
will_paginateのページネータで、デフォルトのspanタグではなく
ul>liを使いたかったので、renderer拡張クラスをつくろうとしてみた!
railsのバージョンは3.0.7、will_paginateは3.0.pre2。
ネット上でぐぐってみると
class CustomRenderer < WillPaginate::LinkRenderer ・・・ここで拡張・・・ end
っていう情報がよく見つかるけど、こうしようとすると
uninitialized constant WillPaginate::LinkRenderer
エラーが出ました。あうあう
rubyonrails-talkのMLでのやりとりを見ると、
class CustomRenderer < WillPaginate::ViewHelpers::LinkRenderer ・・・ここで拡張・・・ end
って感じで、"ViewHelpers"が追加になったみたい!できた!
カスタムrendererを記述する場所はみんなそれぞれの場所に書いてるみたい。
(environment.rbとかapplication.rbとかapp/modelの下とか)
僕はこうしました。
# -*- coding: utf-8 -*-
module PaginateHelper
def paginate collection, opts = {}
opts[:id] ||= 'pageNav'
opts[:previous_label] ||= '前へ'
opts[:next_label] ||= '次へ'
opts[:class] ||= nil
opts[:renderer] ||= 'PaginateHelper::SetucoPaginateRenderer'
will_paginate collection, opts
end
class SetucoPaginateRenderer < WillPaginate::ViewHelpers::LinkRenderer
〜ここで拡張〜
end
end
<%= paginate @pages %>
すっきり!!

