【Ruby】Ruby on Rails Part8
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/09/13(日) 20:49:34ID:kz4rC4Dxhttp://pc11.2ch.net/test/read.cgi/php/1241100447/
■参考サイト
<英語>
本家:http://www.rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
■参考スレ(プログラム板)
Rubyについて Part 37
http://pc12.2ch.net/test/read.cgi/tech/1251029267/
Ruby 初心者スレッド Part 30
http://pc12.2ch.net/test/read.cgi/tech/1249687283/
0002nobodyさん
2009/09/13(日) 20:50:59ID:???0003nobodyさん
2009/09/13(日) 20:51:01ID:???00041
2009/09/13(日) 20:53:14ID:???【Agile】Ruby on rails相談所【DRY】
http://pc8.2ch.net/test/read.cgi/php/1118663500/
【Agile】Ruby on rails相談所 part2【DRY】
http://pc10.2ch.net/test/read.cgi/php/1151254378/
【Ruby】Ruby on Rails Part3
http://pc11.2ch.net/test/read.cgi/php/1170760209/
↓ム板に
Ruby on Rails
http://pc11.2ch.net/test/read.cgi/tech/1191381506/
↓
Ruby on Rails のスレ が
http://pc11.2ch.net/test/read.cgi/php/1207425569/
↓
【Ruby】Ruby on Rails Part6
http://pc11.2ch.net/test/read.cgi/php/1224838013/
↓
【Ruby】Ruby on Rails Part7
http://pc11.2ch.net/test/read.cgi/php/1241100447/
↓
【Ruby】Ruby on Rails Part8
http://pc11.2ch.net/test/read.cgi/php/1252842574/
(イマココ)
00051
2009/09/13(日) 20:55:27ID:???ところで >>4 の変遷って、今後もいるのかな?
次スレを、いつ誰が立てることになるのかはわからないけど、
ちょっと疑問に思ったので今のうちに議論しておいたほうがいいかなと思いました。
0007nobodyさん
2009/09/13(日) 21:09:03ID:???rdocのview sourceが素晴らしい
と言ってる方がいましたが、これは何のことでしょうか?
0008nobodyさん
2009/09/13(日) 21:09:51ID:???> ところで >>4 の変遷って、今後もいるのかな?
個人的には前スレだけで十分
代わりに定番プラグイン一覧みたいなのが欲しいところ
> 次スレを、いつ誰が立てることになるのかはわからないけど、
> ちょっと疑問に思ったので今のうちに議論しておいたほうがいいかなと思いました。
>>950 が立てること、とかでいいじゃないか。
そういうルールもテンプレに含めておくべきだな。
0010nobodyさん
2009/09/13(日) 21:24:33ID:???ドキュメントにソースがついているところじゃないかな?
俺はRailsのchmしか使ってないけど、メソッドのところ見ると、該当ソースが見れる。
これがえらく便利。
わがまま言えば、該当ソース内で他のメソッドクリックするとそのソースも見れる、みたいなのだともっといいんだろうけどねえ…。
chmジャム陸際な
0011nobodyさん
2009/09/13(日) 22:18:58ID:???0012nobodyさん
2009/09/14(月) 00:54:13ID:???@entry = Entry.new(params[:entry])
redirect_to entry_url(@entry)
みたいな感じです。
ネットなどで調べると、名前付きルートentry_urlの引数はidしか渡せないようなのですが、
モデルインスタンスが渡された場合はインスタンスからidを取り出すなどの特別扱いをされるのでしょうか?
0014nobodyさん
2009/09/14(月) 05:36:47ID:???> ネットなどで調べると、名前付きルートentry_urlの引数はidしか渡せない
ハッシュも渡せるYO!!
entry_url(:id => 10)
こういう、引数の色んな渡し方が可能なメソッドは大抵
is_a? とか respond_to? を使って実行時型チェックをやってるので、
その一環としてモデルオブジェクトからは id を取得するようになっているのだろう。
ソース追っかけたわけではないので推測だけど、、、
0018nobodyさん
2009/09/14(月) 10:44:29ID:???>>1 にあるRailsの公式APIリファレンスや github でホスティングされている
gem の rdoc なんかはそうなっているから、そっちを参照したら?
ローカルのgemや自作ライブラリのドキュメントを生成するなら
ひとまず rdoc の使い方を覚え、gem server などでググる必要があると思われる。
でも自分はあんまりローカルgemのrdocは見ないなあ、大抵guthubの方を見る
0019nobodyさん
2009/09/14(月) 18:24:50ID:???0020nobodyさん
2009/09/14(月) 19:19:32ID:???コマンド一覧表作ってくれんかな
0022nobodyさん
2009/09/14(月) 20:16:10ID:???rake <Tab> でコメント付きのタスク一覧を補完候補として表示してくれたりする
0023nobodyさん
2009/09/14(月) 20:43:56ID:???webシステムでユーザーのテーブルを作りたいのですが、memberテーブル(一般ユーザー)とadminテーブル(管理者ユーザー)に分けて作ろうと思っています。
ただし名前やパスワードなど共通するカラムはuserテーブルに切り出します。
この時、userテーブルとmember&adminテーブルの関連はどのように作るべきでしょうか?
以下のように�@と�Aの二つ考えてみたのですが、どっちが良いのか分かりません。
�@memberテーブルとadminテーブルそれぞれにuser_idカラムを作り、memberとadminからuserを参照する。
�Auserテーブルにuser_id(memberテーブルのidまたはadminテーブルのidを格納する)とuser_type("member"または"admin"を格納する)を作り、userからmemberとadminを参照する。
3つのテーブルの関係を考えるとuserがmemberとadminの親になるのが自然なので�@の方が良いのかなと思うのですが、
�Aの方法だと、railsのポリモーフィック関連で3つのテーブルの関連付けができるため便利です。(�@だとuserとmember、userとadminを別々に関連付けするのでmemberとadminに関連性が無くなる)
どっちのやり方が適切でしょうか?
0024nobodyさん
2009/09/14(月) 21:23:58ID:???個人的には polymorphic associationが好み。
あまり美しくないが、一応選択肢として:
Rails的にはSTI(Single Table Inheritance)がお手軽。
0025nobodyさん
2009/09/14(月) 22:06:40ID:???rolesテーブルには一般ユーザと管理者のレコードを入れて権限マスタとして使う。
で、usersテーブルにrole_idを持たせる。
002723
2009/09/14(月) 22:13:49ID:???やはりrailsの場合polymorphicが良いのですね。
Single Table Inheritanceは知りませんでした。少し調べてみたら�@でやる場合はすごく便利そう…validationもuserモデルに書くだけで良くなるからむしろ�Aより綺麗かも?
polymorphicかSTIかでもうちょっと考えてみます。
ありがとうございました。
0029nobodyさん
2009/09/14(月) 22:18:10ID:???memberとadminを区別しないで扱いたい時とか破綻する
003023
2009/09/14(月) 22:26:53ID:???0031nobodyさん
2009/09/14(月) 22:44:58ID:0t6wUMULconfig/routes.rb から該当コントローラの map.resources 行を削ると、以下のエラーになってしまいます。
Showing app/views/hoges/fuga.html.erb where line #3 raised:
undefined method `hoges_path' for #<ActionView::Base:0xb755f00c>
Extracted source (around line #3):
<% form_for(@hoge) do |f| %>
なお該当ビューで hoges_path メソッドを使用している箇所はありません。
0032nobodyさん
2009/09/14(月) 23:03:43ID:???form_forでエラーになっているのであれば、form_tag使えばいいんじゃない?
<% form_tag(:action => アクション名) do %>
<%= text_field(:hoge, :name) %>
以下略
<% end %>
0034nobodyさん
2009/09/15(火) 00:22:25ID:???0035nobodyさん
2009/09/15(火) 00:24:43ID:???003623
2009/09/15(火) 02:04:52ID:???memberテーブルとadminテーブルに分けたのは、一般ユーザーと管理者ユーザーで必要なカラムが違うからです。
userテーブルを作ったのは、ログイン認証の時に一つのテーブルを見るだけで済むようにするためです。
restful_authenticationなどのプラグインなどを使う場合ユーザー認証のテーブルが二つあるとやっかいだと思いました。
>>34さんが言うように変更が面倒くさそうなので、userテーブルだけ作ってmember固有のカラムもadmin固有のカラムもuserに突っ込むことも考えましたが、
そうしてしまうと今度はmemberとadmin以外の種類のuserが必要になった時に大変だと思いました。
自分なりに考えた結果、userとmemberとadminの3つのテーブルを用意するのがいいと判断しましたが、一般的なwebシステムではこういう分け方はあまりやらないのでしょうか。
0037nobodyさん
2009/09/15(火) 03:06:36ID:AVq3Mqvr「管理者=自分」と「その他ユーザー」という区別しかない場合、
特定のID(例えば 1)を持つユーザーが管理者、とハードコードしてしまうのって
どうなんですかね?
role を導入しようかと思ったんですが、
管理者か否かの二値を区別するのに roleテーブルも大げさかなと
0038nobodyさん
2009/09/15(火) 03:43:36ID:???0039nobodyさん
2009/09/15(火) 09:01:10ID:Gt2owe1arole導入でいいと思う。今は2つの値しか扱わないとしても、ハードコーディングするより全然いい。
■ このスレッドは過去ログ倉庫に格納されています