トップページphp
1001コメント383KB

【Ruby】Ruby on Rails Part10

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/08/28(土) 19:27:42ID:Er5MNJZv
■前
【Ruby】Ruby on Rails Part9
http://hibari.2ch.net/test/read.cgi/php/1266563593/

■参考サイト
<英語>
本家: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/

http://twitter.com/dhh
http://www.loudthinking.com/

0301nobodyさん2010/10/06(水) 20:03:03ID:R0yvi9kO
MOONGIFT: Railsを見える化「RailRoad」:オープンソースを毎日紹介
http://www.moongift.jp/2007/07/railroad/


Rails ERD
gem install rails-erd
http://rails-erd.rubyforge.org/
0302nobodyさん2010/10/07(木) 02:08:13ID:mF56A811
WindowsのRails開発環境ってEclipse+Radrails3β使うんでしょうか?
vimやemacsを使わない開発者がいるので、良いIDE環境を探しています。

Aptana Studio3β使ってみたけど、
railsプロジェクトさえロクに作れない有様で挫折しました。
Windows環境ではRoR開発は厳しいでしょうか。
0303nobodyさん2010/10/07(木) 02:28:31ID:???
>>303
> Windows環境ではRoR開発は厳しいでしょうか。

不必要に難易度が上がるのは確か。
03043032010/10/07(木) 02:47:43ID:???
レス番手打ちはいかんな…

RubyMineというのは触ってみた。
Java製でマルチプラットフォーム対応。
今のところ(2.0.2)Rails 3対応してない(rails newしてくれない…)でやんの…
2.5待ちらしい。

0305nobodyさん2010/10/07(木) 03:06:34ID:???
>>302
netbeansがお薦め
rails3にも既に対応してる最強のIDE
0306nobodyさん2010/10/07(木) 09:39:00ID:Tt6LL3Lt
初心者ですが質問させてください。
will_pagenate3.0.preをインストールし、bundlerを使ってページ送り機能をつけたいのですが、require 'will_paginate'をでも取り込んでくれません。
0307nobodyさん2010/10/07(木) 11:04:43ID:???
>>306
Gemfile に
gem 'will_paginate', '~> 3.0.0'
を書いてbundleを実行したのにダメだったということ?

bundle show で出てくる?
$: に will_paginate は含まれている?
railsバージョンはいくつ?
0308nobodyさん2010/10/07(木) 14:52:48ID:2jT+yB6I

【"make install"したソフトウェアを管理できる超便利ツール】pacoを試してみました。(centOS5.5) - 4丁目より
http://d.hatena.ne.jp/mitsugi-bb/20100826/1282795381

http://www.daokaous.com/2010/01/ubuntuでrails環境構築〜ubuntu9-10改訂版〜/
0309nobodyさん2010/10/07(木) 21:35:58ID:???
rails3になって responds_to_parent が動かなくなったため
いくつかのAJAX UI用に使っていたpluginやコードが動かなくなって大変困っています
みんなどうしていますか
0310nobodyさん2010/10/08(金) 02:42:02ID:???
Unexpected Run: Rails3.0でモデルのER図を簡単に出力する方法
http://sawada0903.blogspot.com/2010/10/rails30er.html
0311nobodyさん2010/10/08(金) 11:35:35ID:???
Rails3はまだprototype.jsをメインで使ってるんですか?
0312nobodyさん2010/10/08(金) 11:48:06ID:???
はい
0313nobodyさん2010/10/08(金) 15:19:37ID:???
>>311
メインかしらんけど、少なくともjQueryのも提供されてて、公式の機能として代替可能になってる
railsコマンドでプロジェクトつくる時にも外せるよ
UnitTestだっけ、これもオプションで外せる作りになってる
0314nobodyさん2010/10/08(金) 15:21:14ID:???
>>302
NetBeans使ってるけど、Windowsで開発するのがそもそもおすすめしない。
0315nobodyさん2010/10/08(金) 20:58:57ID:???
>>313
代替可能ってことは、グローバルななにかの設定変えとけば
link_to_remote みたいなのを使ったときに連動して $.ajax とかが使われるってことかな。
だとかなり嬉しいが。
0316nobodyさん2010/10/08(金) 22:01:52ID:???
>>315

Rails3では、HTML中には直接Javascriptを書かない。
(Unobtrusive Javascriptというやつ)

ページが出来上がってから、DOM操作で特定の属性を持った要素を探して
イベントを割り当てて行く。
このイベント割当処理の部分をPrototypeで書いたりjQueryで書いたりする。

link_to_remote は prototype_legacy_helper という gem に残ってるけど、
通常は link_to ... :remote => true と書く。

0317nobodyさん2010/10/09(土) 03:06:12ID:???
フリーエンジニアのRails使いが凄い…
300万↑の案件を2週間程度でこなしてたりする。
こういう人達って年収2000万ぐらい稼いでるのかな?
0318nobodyさん2010/10/09(土) 03:27:16ID:AQ0Bclgb

開発開始2週間で、Rails側85%完成(管理画面以外)。
http://d.hatena.ne.jp/hichiriki/20090409#1239246698
0319nobodyさん2010/10/09(土) 04:16:31ID:FXzMiZhi
Twitterが検索アーキテクチャを変更、ツイート処理性能が約50倍に - ニュース:ITpro
http://itpro.nikkeibp.co.jp/article/NEWS/20101008/352764/
0320nobodyさん2010/10/09(土) 23:41:02ID:PZidCEMB

Unexpected Run: Rails3.0でモデルのER図を簡単に出力する方法
ttp://sawada0903.blogspot.com/2010/10/rails30er.html

0321nobodyさん2010/10/10(日) 17:40:25ID:???
またTwitterで障害だってよ・・・
0322nobodyさん2010/10/10(日) 20:14:09ID:vCO6UQUE
質問させてください。
rails3なのですが、engineを使ってプラグイン的なものを作りたいと思って、
railscastsの動画など見つつ
http://media.railscasts.com/videos/149_rails_engines.mov (ver2.3のものでしたが)

rails generate plugin test

みたいな感じで
vendor/plugins/test
にプラグインのディレクトリを作り、その中に適当な controllerやroutes.rbを用意したのですが、
どうもtestプラグインの中のプログラムが実行されないようです。

単純に vendor/plugin/test がメインアプリケーションから読み込まれてないからだと思うのですが
これを読み込むようにするにはどうすればよいのでしょうか?
rails3だと全てbundlerからインスールしないとちゃんと動かないとか・・
そんなことはないと思うのですが・・。
environment.rb辺りになにか書き足せばいける気がするのですが、3系の情報が少なく、はまってます。
どなたか教えていただけると嬉しいです。
0323nobodyさん2010/10/10(日) 23:03:31ID:???
ウェブの受託開発なんて、たかが知れてるよ。一番儲かるのは新人のPGを右から左に流す事だけど、それは技術とは関係無いし。
0324nobodyさん2010/10/10(日) 23:57:54ID:???
新人の横流しじゃ儲からんだろ。
個人的な感覚では、家族持ちで30代前半辺りが一番使いやすい。
文句言わずに働くし。
独身で若い子を狙う会社が多いけど、すぐに辞められるしリスクがでかい。
0325nobodyさん2010/10/11(月) 00:10:33ID:???
独身で若い子・・・ハァハァ
0326nobodyさん2010/10/11(月) 00:43:25ID:???
>>322
何も試さずに言うけど、engineということはアプリの構造を成している
必要があるから、

vendor/plugins/test/ **app** /controllers/xxx_controller.rb
vendor/plugins/test/ **config** /routes.rb

じゃないの?

03273222010/10/11(月) 01:03:35ID:30uDXKOt
>>326
レスありがとうございます。
もちろんapp/controllersとかconfigとかディレクトリ作ってその中に入れたのですが、
原因がわかりました。
メインのアプリケーションとpluginの方で同じコントローラを定義してしまってたことが原因でした。

なんか勝手にプラグインの方が優先されるだろうと思ってたんですが、同じコントローラ
があった場合メインの方が優先されるようです。

お騒がせしました。
0328nobodyさん2010/10/11(月) 02:07:32ID:???
>>327

$LOAD_PATH($:) 上、
本体のが先に見つかるようになってるんじゃないのかな。
03293272010/10/11(月) 02:40:59ID:30uDXKOt
そのようです。

すみません、別の問題が出てしまったのですが、
vendor/plugins/test に入っているコントローラなどのクラスを、
メイン側でオープンして再定義するにはどうしたらよいでしょうか。

プラグイン内とメインアプリ内で同名のコントローラがあった場合はメインの方が優先されることが分かったので、
vendor/plugins/test/app/controllers/samples_controller.rb を
app/controllers/samples_controller.rb でオープンして再定義できるのではと思ったのですが、
どうやら上記二つは全く別物として扱われ、下記が読み込まれると上記は無視されるように見えます。

もし上記のやり方でクラスオープンできないとしたら、どのようにしてplugin内のクラスをオープンして
再定義できるでしょうか。
ご教示いただけると嬉しいです。
0330nobodyさん2010/10/11(月) 10:51:27ID:???
>>317
案件の価格がおかしいだけ。
すぐに下がる
0331nobodyさん2010/10/11(月) 11:05:14ID:???
>>329

メイン側で
require 'vendor/plugins/test/.....'
してからでないと再オープンにならない。
03323022010/10/11(月) 12:28:31ID:R6zwuDNY
レスありがとうございます。

Radrails3β、RubyMine2.5、NetBeans6.9.1と触ってみましたが、
NetBeansがいろいろ設定が出来てよさそうでした。
NetBeansを開発環境として選定してみようと思います。
03333272010/10/11(月) 13:47:56ID:30uDXKOt
>>329
レスありがとうございます!
すみません、続けての質問になってしまうのですが、
require 'vendor/plugins/test/.....' はメイン側のどのファイルに書けばいいのでしょうか?
environment.rbの

require File.expand_path('../application', __FILE__)

の下に、

require "#{Rails.root.to_s}/vendor/plugins/testclient1/app/controllers/samples_controller.rb"

のような感じで書き足してみたのですが、サーバ起動時に
/rails_root_path/vendor/plugins/test/app/controllers/samples_controller.rb:1:in `<top (required)>': uninitialized constant ApplicationController (NameError)
のようなエラーが出てしまいました。
ApplicationControllerが定義される前に読み込んでしまってるようです。
また、testプラグインの全てのapp/以下のクラスを再オープンできるようにしたいのですが、
上記のような記述で1ファイルずつどこかに記述する必要がありますでしょうか??

質問ばかりですみません。教えていただけると嬉しいです。
03343272010/10/11(月) 13:48:49ID:30uDXKOt
require "#{Rails.root.to_s}/vendor/plugins/testclient1/app/controllers/samples_controller.rb"
のtestclient1はtestの間違いでした。失礼しました。
0335nobodyさん2010/10/11(月) 15:40:34ID:???
>>334

app/controllers/samples_controller.rb はこんな構造になる。

require './vendor/plugins/test/app/controller/samples_controller'
class SamplesController < ApplicationController
# ここで定義を上書き
end
03363352010/10/11(月) 17:29:28ID:???
./ だとカレントが Rails.root でない場合は動かなくなるな。
Rails.root とくっつけるか、File.dirname(__FILE__) を使ういつもの
パターンを使うか、1.9 なら require_relative あたりで。

Rails.root / vendor が $: に入ってるので、
require 'plugins/test/app/controllers/samples_controller' が
完結でよいかもしれない。
0337nobodyさん2010/10/11(月) 18:11:09ID:???
外部鯖のMySQLをDBとして利用する際の設定について教えてください
database.ymlのsocketをいじってればいいと思うのですが…
0338nobodyさん2010/10/11(月) 18:36:16ID:???
>>337
他のホストで動いているMySQLサーバと通信するには、

MySQLサーバ側
* ローカルホスト以外からのTCP/IP接続を許可する
* 使用予定のアカウントに対し、接続元を許可している(GRANTの確認)

config/database.yml
* database, host, username, password, port を書く。(portはデフォルトのままなら不要)
* socketはいわゆるUNIXソケットローカルのパスにソケットファイルを指定するものなので、
外部とつなぐ場合は設定しない
0339nobodyさん2010/10/11(月) 18:46:02ID:y5s6alEO
外部サーバのMySQLに接続を試すの巻 | TrippyBoyの愉快な日々
http://blog.trippyboy.com/centos/外部サーバのmysqlに接続を試すの巻/
2.MySQLサーバ内に”ユーザ@接続元IP”を作成する。

>grant all privileges on *.* to user@”接続元IP” identified by ‘password’;

↑この設定だと全DBにアクセス可能になってしまいますので、特定のDBをお望みの
場合には、「*.*」を「tokutei_db.*」のように変更してください。
03403272010/10/11(月) 18:57:04ID:30uDXKOt
>>335
レスありがとうございますm(_ _)m
なるほどファイルの中に直接requireを書いてしまうんですね。
require 'plugins/test/app/controllers/samples_controller'
でオープンできました。ありがとうございます。

ただ、一つ問題があって、メイン側で再オープンしたクラスのコードを編集して、
ブラウザをリロードしても、変更が反映されないようなのです。
Webrickを再起動したら反映されたので、どうもキャッシュが効いてしまってる気がします。
もちろんRails.envはdevelopmentです。

メイン側で再オープンしたクラスを編集した際、サーバ再起動しなくてもすぐに反映されるようにしたいのですが、
どうすればよいでしょうか・・。重ね重ねすみません。ご教示いただけないでしょうか。

あと、($:).grep(/vendor/) すると vendor/plugins/test/app/contorollers
も出てくるのですが、
require 'samples_controller'
だけだとなぜか読み込まれないようです。
require 'plugins/test/app/controllers/samples_controller'
で読み込めるので特に問題はないのですが・・
0341nobodyさん2010/10/11(月) 19:35:09ID:???
再起動して反映されるなら、そういう仕様なんじゃないのか。
0342nobodyさん2010/10/11(月) 22:46:45ID:JjNw2+ys
MySQL 外部ホストからアクセスする | 渋谷生活
http://ext.omo3.com/linux/mysql_host.html

MYSQLの外部からリモート接続の仕方について - Linux Square
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22940&forum=10&3

MySQLサーバを外部から接続できるようにする - devel-log.tar.gz
http://d.hatena.ne.jp/dai67/20091229/1262077304

mysqlで外部サーバにレプリケーション成功 - (゚∀゚)o彡 sasata299's blog
http://blog.livedoor.jp/sasata299/archives/51188620.html

0343nobodyさん2010/10/12(火) 03:09:11ID:???
>>340
>require 'samples_controller'
>だけだとなぜか読み込まれないようです。

なぜかもなにも、sample_controller という名前に該当するファイルは、$: パス検索上、
まず app/controllers で先に見つかり、それは自分自身なので当然 require 済み。
03443402010/10/12(火) 04:28:56ID:m4lv44sZ
>>343
そーかなるほど汗
お馬鹿なことに気付きませんでした。
ありがとうございます。

キャッシュの方の問題が、まだ解決しません。
おそらくプラグインで定義されているクラスのオープンしているので、
オープンして再定義したクラスもプラグインのものとして扱われているのだと思います。
なので、プラグインをキャッシュせず、毎回アクセス毎に読み込み直すようにすればよいと思うのですが、
そのやり方がまだわかってません。。
0345nobodyさん2010/10/12(火) 09:04:06ID:???
>>344
ActiveSupport::Dependenciesの魔境をhackしたい、かつ、それができないとどうしても
先に進めないというので限り、毎回再スタートすることにして本来の問題に対処したほうが
いいと思う。

ちょっくら見てみるかぁ…
0346nobodyさん2010/10/12(火) 09:15:41ID:???
Railsプラグインって、デフォだとdevelopmentの初期設定でもリロードはされないよな、確か

require_onceだったか、dependenciesのリストから対象ファイルかディレクトリを省く方法あったはず
0347nobodyさん2010/10/12(火) 09:19:50ID:???
あったこれか

Reloading Your plugin in development mode : Witold Rugowski aka NetManiac
http://nhw.pl/wp/2009/01/07/reloading-your-plugin-in-development-mode


Dependencies.load_once_pathsから外す、か。
Rails2の話なのでRails3は違うかもしれん
0348nobodyさん2010/10/12(火) 20:21:26ID:ywYvZKK9
RubyJavaブリッヂを使ってみる
http://www.db.is.kyushu-u.ac.jp/rinkou/ruby/rubyrjb.html
0349nobodyさん2010/10/12(火) 23:03:22ID:q7v2ASbI
Java で暗号化したデータを Ruby で復号しようとしたら大変だった件 - 口内炎延焼
http://d.hatena.ne.jp/ssig33/20100823/1282554827
0350nobodyさん2010/10/13(水) 23:25:07ID:6xKBidge
Gettext on Rails 3.0.0.beta : Next Sprocket
http://nextsprocket.com/tasks/gettext-on-rails-3-0-0-beta
0351nobodyさん2010/10/14(木) 16:09:32ID:???
windows環境でrailsを始めてみようと思うのですが、
win用のtextMateとNetbeansではどちらがオススメでしょうか?
0352nobodyさん2010/10/14(木) 17:49:30ID:???
windows環境でrailsは全くオススメ出来ない
0353nobodyさん2010/10/14(木) 17:52:39ID:???
理由は?
03543512010/10/14(木) 21:03:28ID:???
>>352

それは承知なのですが、そこをなんとか!
とりあえずある程度慣れたら、Linuxもしくはマックへの移行も考えております。
0355nobodyさん2010/10/14(木) 21:46:28ID:???
gvimでいいと思うよ
0356nobodyさん2010/10/15(金) 06:45:17ID:???
ちょっと質問いいでしょうか?

routes.rbにて、

map.connect 'download/:id.:format'

みたいにアップロード済ファイルをダウンロードさせようとして:formatを指定させた場合に
ダウンロード自体が上手く入っているときはよいのですが、
権限が足りないなどエラーが起きたときにエラーメッセージをrender :templat => "my_error" として
表示させようとすると、params[:format]がhtml以外のときに、正しくmy_error.html.erbでなくmy_error.erbを読もうとして、
また、htmlではなく、params[:format]な形式で変えるようです。

エラー表示の時は無理やり params[:format] = "html"すればよいようですが、
renderに指定するようなもっとスマートな方法はないものでしょうか?

Rails 2.3です。
0357nobodyさん2010/10/15(金) 06:46:47ID:???
訂正

> 表示させようとすると、params[:format]がhtml以外のときに、正しくmy_error.html.erbでなくmy_error.erbを読もうとして、
> また、htmlではなく、params[:format]な形式で変えるようです。

表示させようとすると、params[:format]がhtml以外のときに、my_error.html.erbではなくmy_error.erbを読もうしてエラーになりますし、
またこのときhtmlではなく、params[:format]な形式になるようです。


0358nobodyさん2010/10/15(金) 15:26:28ID:???
Netbeans最新版でRailsを使おうと思っています。

IDEを選ぶ前にInstantRailsを入れておいたのですが、
Netbeansの設定はデフォルトのJRubyがオススメでしょうか?
0359nobodyさん2010/10/15(金) 19:20:39ID:???
>>358
なるべく動作環境に合わせたほうがいいと思う。

JRuby環境で動かすならJRubyでいいだろうし(それならInstantRailsいらないんじゃ)
CRuby(本家のRuby)で動かすなら、InstantRailsのような環境を用意する。
でも、InstantRailsってとても古いように見えるからおすすめできないな

>>196 >>210 を読んだ上で、VirtualBoxなりVMWareなり入れてそっちに環境作ったほうがいいと思う。
開発マシンとファイル共有すればWindowsからもNetBeansで編集できるし

どうしてもWindowsにこだわるなら、 RubyInstaller http://rubyinstaller.org/
とXAMPPかな(MySQLとphpmyadmin使えるから)
でも動作環境がunixならトラブルこと多いよ
0360nobodyさん2010/10/15(金) 19:24:55ID:???
残念ながらJRubyもIDEもWindowsもオススメできません
0361nobodyさん2010/10/15(金) 19:30:37ID:???
実際に使ってるおれからすれば、Windowsでも非常に快適だがな
たまに苦労するけど、それはLinuxで苦労するのと同じくらいの頻度
03623582010/10/16(土) 02:08:11ID:???
>>359

詳しい解説ありがとうございます。

自分はCakePHPからRailsに移行したのですが、とりあえずRailsにある程度慣れて、
これはいけると思ったらマックを購入しようかなと考えております。

該当スレを読んで、なんでWindowsやnetbeansがオススメできないのかをもっと知りたく、
このサイト見てみましたがいろいろとあるようですね。。
http://blog.livedoor.jp/satoyansoft/archives/65344445.html


VMwareを使ってLinuxで構築となるとちょっと敷居が高そうなので、
その時はマックを素直に買おうかなと考え中です。

とりあえずWindows環境でRubyとRuby on Railsにある程度慣れたい!という
自分の目的だと、

アドバイスに従って、RubyInstallerとXAMPPとe-texteditorで練習するのがベストじゃないかと思いました。

ちなみに、InstantRailsを使ったのは、「RailsによるアジャイルWebアプリケーション開発 第4版」に合わせようと
思ったからです。


>>360

JRubyがオススメできない理由をもしよければ教えてもらえないでしょうか?
JRubyの記事や高速化の話題は検索しやすいのですが、オススメできない理由はなかなか探すことができず。。
0363nobodyさん2010/10/16(土) 03:02:55ID:???
横槍で突っ込んでみる。
自社サービスも案件も全てRailsオンリーの会社で働いてるけど、普通にWindows使いもたくさんいる。
エディタはやっぱりeclipseが多い。
Aptana使うにしてもわざわざeclipseのプラグインで使ってる人が多いみたい。
まぁeclipseのことはあまり知らないけど。
Netbeansは周囲には全然いない。。
自分はLinuxでVimだけど、LinuxならEmacsの方が多いかな。
まぁ結論としてはWindowsでも全然問題ないと思う。
RubyInstallerは初心者には無難だと思うよ。
0364nobodyさん2010/10/16(土) 04:12:35ID:???
rubyやっとことないけどrailsて結局何がいいの?
アクティブレコード?
0365nobodyさん2010/10/16(土) 05:26:58ID:???
うちは開発ほぼ全員Mac。Windowsは1人かな。その人はVM入れてLinux。
MacでもどうせRubyとか入れ直さないといけないし、買ったらすぐ使えるわけでも無いけど、楽なのは確か。
0366nobodyさん2010/10/16(土) 07:56:54ID:???
情弱だと入れ直さないといけないんだよね。
0367nobodyさん2010/10/16(土) 08:10:22ID:???
入れ直さないといけないというより、システムに入っているのはあてにならないというか。
しばらく待てばOSアップデートされたりするんだけどね。
でもいまだにOSXの標準だと 1.8.7p174。

rvmで所望のバージョン入れたほうがいい。
0368nobodyさん2010/10/16(土) 10:30:33ID:???
Macの標準で入ってるものはreadlineがあれなので、irbやscript/consoleとかで日本語通らないからな
MacPortsで入れるか、入れ直す
0369nobodyさん2010/10/16(土) 11:54:38ID:???
Railsはじめたばかりなのですが、
参考になるサンプルが置いてあるオススメのサイトを教えてもらえないでしょうか?

現在、シンプルにFat Modelな感じで書いてあるサンプルを探しています。

コントローラとビューの連携はなんとなくわかったけど、
Fat Modelな感じで、コントローラとモデルを連携するやり方を模索中です。

モデルがActive Recordと書かれているので、最初は戸惑いました。

「リファクタリング Rubyエディション」とか買ったら、こういう例は詳しく書いているのかな。
0370nobodyさん2010/10/16(土) 12:59:14ID:???
Rails初心者なら入門書を1冊買って体系的に学んだほうが良いと思うよ。
0371nobodyさん2010/10/16(土) 14:56:24ID:B+/gTTuN
Life is beautiful: Ruby on Railsの「えせMVC」の弊害
http://satoshi.blogs.com/life/2009/10/rails_mvc.html

Life is beautiful: O/Rマッピング技術の進化が皮肉にも助長している「えせMVC症候群」
http://satoshi.blogs.com/life/2009/10/ormappingmvc.html
03723692010/10/16(土) 15:05:09ID:???
>>370

やはりそうですよね。
「RailsによるアジャイルWebアプリケーション開発 第4版」をとRailsレシピブックを買ったのですが、
もう少し薄い感じで、簡単にRailsの事を網羅している本を探しに行きたいと思います。

>>371

そのエントリはすごく参考になりました。
つまり、Fat Modelで書きなさいってことですよね。

コメント欄で書かれていた、 ActiveRecordを使うモデルと、ロジックのみのモデルは
分けるという人が印象的でした。

データベース連携用のモデル、Fat Model実現のビジネスロジック専用のモデルを
分けるという考えはナイスだと思うのですが、みなさんはどう思いますか?
0373nobodyさん2010/10/16(土) 19:02:28ID:???
第4版?まだ英語版も出てなかったと思うが

えせでもfatでもskinnyでもいいけど、
概念ばっかで具体性がないから何とも言えない。
そんなんでナイスとか言えるのは無能で何も分かってないコンサルくらい。
0374nobodyさん2010/10/16(土) 19:32:16ID:???
>>362
理由は、JRubyでのRails開発例を丁寧に紹介していたサイトを見た初心者の人が
その通りにやって全然動かなくて困っていたのを過去スレか関連スレで見たので。
0375nobodyさん2010/10/16(土) 19:37:21ID:???
え・・・理由ってそれだけ?
0376nobodyさん2010/10/16(土) 19:52:50ID:???
Railsに慣れたいってことなら、くだらないことで躓かないようにと
忠告してやってんのにそういうレスするわけか
まあ、気概があるなら好きにやってくれ
0377nobodyさん2010/10/16(土) 19:54:57ID:???
>>376
いくらなんでも >>374 はJRubyを薦めない理由としておかしいだろw
0378nobodyさん2010/10/16(土) 19:58:51ID:???
自分でやったわけでもなく、
初心者がどこかのサイトを見てやってつまずいたレスを
2ちゃんのどこかのスレでただ一度見ただけ・・・
0379nobodyさん2010/10/16(土) 20:13:00ID:???
>>362 >>372
> 「RailsによるアジャイルWebアプリケーション開発 第4版」

おいそれ、まだ日本語訳でてねーぞw 英語版もベータだ
>>13に書いてあるから英語版か?

>>13 にある Head First Railsもオススメだと思うぞー
0380nobodyさん2010/10/16(土) 20:30:10ID:???
>>362
> 該当スレを読んで、なんでWindowsやnetbeansがオススメできないのかをもっと知りたく、
> このサイト見てみましたがいろいろとあるようですね。。
> http://blog.livedoor.jp/satoyansoft/archives/65344445.html

このサイトの内容は重ね同意だな

Capistranoが動かないというのは本当でもありウソで、俺はパッチ当てて使ってる
エラーでたのをググって参考にしてパッチ当ててるだけだが(確かコマンド起動時のパス区切りの問題)

つまりちょっとしたトラブルを自分で調べて対処できないと面倒だよ、ということ
実際はそのちょっとしたトラブルが多いけどな
それとググるときは英語圏も必ず見る。日本語サイトになくて英語サイトに書いてあることで悩んでる人たまに見かける


そのサイトでは、eTextEditor勧められているけど、IDE使っているとeTextEditorは不満が多すぎるし、
普段からIDE慣れしている人ならIDEでもいいだろ。他の言語のようには使えないのが前提だが。
vimやemas使える人ならWindowsでも動くし悩む必要ないよな。
0381nobodyさん2010/10/17(日) 02:06:32ID:z6s2Wyjr
rails 自己参照結合 http://blog.hasmanythrough.com/2006/4/21/self-referential-through

自己結合(Self Joins) http://wiki.usagee.co.jp/ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active%20Record%20Associations#m6658a2f

MVCのMは http://japan.zdnet.com/blog/yoshimi/2007/11/22/entry_27016437/
■app/models/friendship.rb
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
■app/models/user.rb
has_many :friendships
has_many :friends, :through => :friendships
has_many :followerships, :class_name => "Friendship", :foreign_key => "friend_id"
has_many :followers, :through => :followerships, :source => :user
has_many :statuses
■app/models/status.rb
belongs_to :user
0382nobodyさん2010/10/17(日) 02:16:52ID:???
>>372

あわせて読みたい:

えせMVCについてそろそろ一言言っておくか - ひがやすを blog
http://d.hatena.ne.jp/higayasuo/20091013/1255408723

えせMVC? - akimatter
http://d.hatena.ne.jp/akm/20091015/1255580332
0383nobodyさん2010/10/17(日) 04:08:13ID:???
ApplicationControllerで
@myvar
と変数を定義して、
layout/application.html.erbの中でこの変数を使いたいのですが
この変数は取得できないようです。

各Controllerで定義したインスタンス変数はapplication.html.erbで取得できます。
ApplicationControllerは各Controllerが継承しているので、
理論上では取得できるように思うのですが。。
どこで間違っているのでしょうか。
0384nobodyさん2010/10/17(日) 04:53:56ID:3XvDZpS3

ttp://www.find-job.net/fj/search.cgi?shokushu=0&kinmuchi=0&keitai=0&from=23&category=0&ky_kind=0&ky_from=0&do_search=1&keyword=rails
0385nobodyさん2010/10/17(日) 05:24:35ID:RZjf9c2/

application.html.erbの優先度は低くて、処理しているコントーラーに対応するコントローラー名.html.erbがあるとそっちのレイアウトを利用します。
http://akr97.com/capsule/?p=871


変数はapplication_controller.rbかhoge_controller.rb
0386nobodyさん2010/10/17(日) 07:53:39ID:???
>>383

もしかして
class ApplicationController < ActionController::Base
@x = 10
end
のように、ApplicationControllerの *クラスに* インスタンス変数を定義してはいない?

たとえば、before_filter を使うなどして、コントローラの *インスタンスに* インスタン
ス変数を定義すれば、使えてるけど。

app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_filter do
@x = 10
end
end

app/controllers/test_controller.rb
class TestController < ApplicationController
end

app/views/test/index.html.erb
<%= @x %>
0387nobodyさん2010/10/17(日) 07:56:30ID:???
>>372
>>382
[Rails]Ruby on Railsは「えせMVC」じゃないよー
http://d.hatena.ne.jp/shunsuk/20091012/1255351852
0388nobodyさん2010/10/17(日) 09:05:41ID:RkRpy3Pl
Lokka - Pyha
http://demo.lokka.org/
http://lokka.org/
http://github.com/komagata/lokka
http://groups.google.co.jp/group/lokka-ja


http://d.hatena.ne.jp/holypp/20101016/1287234958

03893692010/10/17(日) 10:18:24ID:???
>>373

すいません。第3版でした!

Modelをロジック専用とデーターベース連携専用に分けるというのは、
よくないとアドバイスされました。それより、UserとかBookとか概念ごとに分けろと。
確かに、全然分かってませんでした。

>>379

Head First Railsも一緒に買っておいたほうがいいかもですね。
立ち読みした感じでは、ちょっとくどいかなあと思ったのですが、細かい部分で参考になるかもしれないし。

>>380

eTextEditorを使って見ましたが、どうも使いにくい。。
NetbeansとJrubyで練習しようと思っているのですが、開発段階だとそんなに問題はないんじゃないかと
思っているのですが、やはりこのスレの人達が指摘するようにJruby使うとつまらないことで悩むことが多くなるのでしょうか?

単純に、サーバーにアップロードする時にLinuxとかが必要なのであって、Herokuのようなレンタルサーバを使うことを
考えているのなら、Windows環境でNetbeans+Jrubyでもはまることは少ないのではと単純に思っているのですが。
(これは勘違いしてそうな気もしますが。。)

0390nobodyさん2010/10/17(日) 11:33:27ID:???
Windows以外も使えるスキルを持っているなら、Linux/Macを使って開発したほうが
実行速度も速いし、環境の違いによる問題でハマらない。
メインOSがWindowsでもVM上でLinux使えるし。
Windowsしか使った事がない人は、Windowsでやればいいよ。

というか、一般的には本番環境を先に想定して
本番環境と同じ環境を開発環境として構築するほうが良いのでは?
03913692010/10/17(日) 12:07:18ID:???
>>390

参考になります。環境の違いでハマらないというのが大きそうですね。
03923832010/10/17(日) 18:24:02ID:???
>>386
ありがとうございます!
まさにその通りでした。なるほどクラスインスタンス変数になってしまうのか。。
0393nobodyさん2010/10/17(日) 22:02:08ID:???
>>390-391
さすがに動かすことを念頭にするなら、まず適当なスケルトン作ってデプロイして動かすまではやらないとね・・・

趣味や勉強でやるんなら別にあとでもいいんだろうけど


例えだけどさ、極端な例だけどherokuで動かすんならherokuに合わせた環境構築や開発の仕方するよね
read onlyなファイルシステムを最初から考慮して作るとか、
本番はPostgreSQLだからSQLiteで開発しない方がトラブらなさそうとか

>>386 >>392
selfが今なんなのか意識したほうがいいと思う
0394nobodyさん2010/10/17(日) 22:44:49ID:???
ビューの中のselfはコントローラではないという罠もあるな。
0395nobodyさん2010/10/17(日) 23:08:23ID:???
>>386
そのfilterはさすがにきめぇ
0396nobodyさん2010/10/18(月) 00:00:55ID:???
どこが気持ち悪いのかよく分からんな
0397nobodyさん2010/10/18(月) 00:32:47ID:???
そもそもの話はすべてのviewで共用する変数を定義したいってことじゃないの?
ヘルパーに切り出す方が自然な気がする。
0398nobodyさん2010/10/18(月) 00:35:44ID:???
あれ、過去レス見たら少し違うのか。↑は無視してくれ。
0399nobodyさん2010/10/18(月) 05:25:01ID:???
> ヘルパーに切り出す方が自然な気がする

こっちの方がはるかに不自然だと思うのだが
なんでヘルパーにデータを持つんだよ
0400nobodyさん2010/10/18(月) 08:33:00ID:???
う〜ん、例えばレイアウトに全ページで共用するヘッダーがあったとして
そのヘッダーの中でログインユーザー名を表示する場合、
>>386のようなfilterでデータ取得するのが一般的なの?
helperにログインデータ取得するメソッド用意した方が自然だと思う。
0401nobodyさん2010/10/18(月) 08:53:38ID:???
======== hoge.html ========
<%= render :partial => 'login' %>


======== _login.html ========
<% if user? %>
  <%= _("welcome %{firstname} %{lastname}: ") % {:firstname => current_user.firstname, :lastname => current_user.lastname} %>
  <%= link_to _('logout'), :controller => 'user', :action => 'logout' %> |
  <%= link_to _('Change password'), :controller => 'user', :action => 'change_password' %>
<% else %>
  <%= store_location %>
  <%= link_to _('login'), :controller => 'user', :action => 'login' %>
<% end %>
■ このスレッドは過去ログ倉庫に格納されています