学校卒業と同時にブログタイトル変えるとき、
気分転換的にはてなから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 %>
すっきり!!