|
|
|
|
スッペシャルで情熱的な機能を持った scaffold
jascaffold と同じことは全てできます。というか、jascaffold generator も含まれています。但し、データ(yml)のフォーマットが若干変更されたため、両 generator で定義ファイルの一部に互換性がありません。各機能は宣言部分で無効にできますので、新しいスペジェネを使うことお薦めします。
has_many & belongs_to なモデル関係を扱うことができます。モデルでの Association 宣言に従って、アクション用のロジックモジュールが自動的に生成されます。利用したい Association を両コントローラにそれぞれ宣言することで、所有側の list アクション時に関連へのリンクが追加されます。
通常の各アクションに加えて、Ajax用のアクションとビューが自動的に生成されます。index は Ajax 用ページとなり、ページ遷移することなくこのページだけで一連の操作を実行可能です。
Ajax用ページ(index)では、In Place Editor によって各項目を修正することができます。参照と修正アクションの読み込みが不要になり、低コストでの実行が可能です。
svn が利用可能です。
% ruby script/plugin install http://wota.jp/svn/rails/plugins/branches/stable/special
(追記: レポジトリを変更 20060208)
以下のような多:1の関係を持つモデルがあるとして、スペジェネの利用手順を記載します。
|
scaffold はモデルとコントローラを同時に作成することを前提にしていますが、スペジェネではモデルの Association 情報を利用しますので、先にモデルを作成します。(テーブルの複数形問題もあるので通常の scaffold でもこの手順がよいと思います)。
class Group < ActiveRecord::Base has_many :members, :include=>"favorites", :dependent=>true has_many :songs validates_presence_of :name end class Member < ActiveRecord::Base belongs_to :group has_many :favorites, :dependent=>true validates_presence_of :yomi, :name, :comments, :group_id end class Favorite < ActiveRecord::Base belongs_to :member validates_presence_of :name, :member_id end class Song < ActiveRecord::Base belongs_to :group validates_presence_of :name, :content, :group_id end |
ローカライズで必要になる文字コードを指定します。plugin で利用できるように、config/environment.rb の先頭に記載します。
% vi config/environment.rb $KCODE = 'u' |
% script/generate special group % script/generate special member % script/generate special favorite % script/generate special song |
このコマンドを実行するときに必要な動きと発声は以下の通りです。
☆ノノハ ノノ∂_∂∩ <ス ☆ノノハ 川*^∇^∩ <ペ ☆ノノハ ル ’ー’リ∩ <ス ☆ノノハ 州*‘ o‘∩ <ペ ☆ノノハ 川´・_・∩ <シャ ☆ノノノハ 从 ´∇`∩ <ル ☆ノノハ 从*’w’∩ <ジェネレーション! ((つ )〃 (( (_) _) ☆ノノハハ 从oTーT从 <おぁ〜い;;;
(この部分はなくても動作しますが、激しく推奨されています)
/usr/share/tdiary/tdiary/regex_rules/syntax-ruby:3:in `require': no such file to load -- syntax/convertors/html (LoadError) from /usr/share/tdiary/tdiary/regex_rules/syntax-ruby:3
同様に他のクラスに関しても定義します。
YourController#index を削除して下さい。 |
無効にしたい関連の所有側のコントローラから has_many の行を削除し、 所属側のコントローラから belongs_to の行を削除して下さい。 |
現状では、Ajax版のViewはIPEのみです。 コントローラの ipe_for を削除すると、 エディタは起動しますがコントローラ側のアクションを消すことができます。 |
どうしてもです。 |
FAQの追加はこの辺↓
| JRuby | Rails | Berryz | ℃-ute | エッグ | jQuery |
| 前 | 2006年 2月 |
次 | ||||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | ||||
うは、最高 早速試させてもらうか<br>とか思いながら<br>script/generate special group<br>とかやると<br>wrong number of arguments (1 for 0)<br>と怒られてしまうですよ。。。
-tでエラーどこに出てるんかいなと見てたらgem内で出てる。何故だ。<br>ああん。動作環境読んでなかったよママン<br>死んできます。
イキロ!<br>% \rm -rf vendor<br>% svn co ttp://dev.rubyonrails.com/svn/rails/trunk vendor<br>で手元のだけ Edge で動かせるクゥ〜ン!<br>(↑実行するときは ttp の前に h を付けてね)
すぺしある素晴らしすぎます。<br>↓実験する方用SQL<br>CREATE TABLE `favorites` (<br> `id` int(10) unsigned NOT NULL auto_increment,<br> `name` varchar(255) NOT NULL default '',<br> `member_id` int(10) unsigned NOT NULL default '0',<br> PRIMARY KEY (`id`)<br>) TYPE=MyISAM AUTO_INCREMENT=1 ;<br><br><br>CREATE TABLE `groups` (<br> `id` int(10) unsigned NOT NULL auto_increment,<br> `name` varchar(255) NOT NULL default '',<br> PRIMARY KEY (`id`)<br>) TYPE=MyISAM AUTO_INCREMENT=1 ;<br><br><br>CREATE TABLE `members` (<br> `id` int(10) unsigned NOT NULL auto_increment,<br> `name` varchar(255) NOT NULL default '',<br> `yomi` varchar(255) NOT NULL default '',<br> `comments` varchar(255) NOT NULL default '',<br> `group_id` int(10) unsigned NOT NULL default '0',<br> PRIMARY KEY (`id`)<br>) TYPE=MyISAM AUTO_INCREMENT=1 ;<br><br><br>CREATE TABLE `songs` (<br> `id` int(10) unsigned NOT NULL auto_increment,<br> `name` varchar(255) NOT NULL default '',<br> `group_id` int(10) unsigned NOT NULL default '0',<br> `content` varchar(255) NOT NULL default '',<br> PRIMARY KEY (`id`)<br>) TYPE=MyISAM AUTO_INCREMENT=1 ;
has_many & has_manyな対応とかhas_manyをselectタグで選べるようになったりとか妄想してハァハァ
あ、そうだ。<br>「URL=スパム」というくまくまルールがあるので、<br>必要であれば、ttp から書くのがオススメ。
了解です。 メールありがとうございます。<br>メールで頂きました<br>>* belongs_to を所有者へのリンクと考えてよいか?<br>ですけど、確かに所有されている物は所有者を知らないほうがよいですよね。<br>うーん難しいですが、クマさんの頭でよい感じにモデリングして頂けるとことを期待しております
Hi! Very nice content. Interesting how can you do all that? I'm trying to build my site, but have no success for now((.