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

【RoR】Ruby on Rails Part12

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/07/19(火) 13:44:46.30ID:zxrusyvr
■前
【Ruby】Ruby on Rails Part11
http://hibari.2ch.net/test/read.cgi/php/1292032736/

■参考サイト
<英語>
本家:http://rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
http://ruby-toolbox.com/
http://rubygems.org/
http://agilewebdevelopment.com/plugins/top_rated

<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/

http://twitter.com/dhh
http://www.loudthinking.com/
0002nobodyさん2011/07/19(火) 13:50:49.76ID:???
関連スレ

Ruby 初心者スレッド Part 44
http://hibari.2ch.net/test/read.cgi/tech/1307845568/

Rubyについて(アンチ専用) Part004
http://hibari.2ch.net/test/read.cgi/tech/1249737531/

Rubyについて Part 44
http://hibari.2ch.net/test/read.cgi/tech/1308977168/

[PHP][フレームワーク]CodeIgniter Part2
http://hibari.2ch.net/test/read.cgi/php/1299595202/

Zend Framework Part5
http://hibari.2ch.net/test/read.cgi/php/1297364669/
0003nobodyさん2011/07/19(火) 15:53:52.93ID:zxrusyvr
OpenFeintジェイソン・シトロンCEOに独占インタビュー/Tech総研
ちなみに、僕らのプラットフォームは、Ruby on Railsで開発されています。
http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=001896
0004nobodyさん2011/07/19(火) 17:23:58.22ID:???
>>1
おせーよ!死ねw
0005nobodyさん2011/07/20(水) 00:26:18.21ID:???
2以降はMySQLじゃなくてSQLiteがデフォルトDB機関になってるけど
設定のとこだけ違ってRORのコーディングは全く同じような書き方をして問題ない?

後々SQLiteからMySQLにマイグレーションするときのために
コーディング部分で気をつけておくべきことってあるかな?
0006nobodyさん2011/07/20(水) 00:52:57.53ID:???
アップロードした画像はDBに直接保存。
もしくは画像ファイルを特定のディレクトリに保存してそのURLをDBに保存。

どちらがいいですか?

1日10000PVです。
0007nobodyさん2011/07/20(水) 07:17:32.17ID:Wbv/MqQN
トレードオフ

0008nobodyさん2011/07/20(水) 13:47:16.29ID:Wbv/MqQN
http://b.hatena.ne.jp/t/RubyKaigi2011
0009nobodyさん2011/07/20(水) 16:13:02.07ID:Wbv/MqQN
これは注目の超リッチなUIを実装できるjQueryベースのUIライブラリ「jQuery EasyUI」:phpspot開発日誌
http://phpspot.org/blog/archives/2011/07/uijqueryuijquer.html
0010nobodyさん2011/07/21(木) 00:55:27.36ID:???
>>5
SQLiteの独自の機能に依存した何かをしていなければ問題ない。
0011nobodyさん2011/07/21(木) 08:06:12.44ID:???
>>10
SQLite独自の機能って例えば何がある?
0012nobodyさん2011/07/21(木) 13:09:28.87ID:/ztmC1CW
http://www.dbonline.jp/sqlite/function/
0013nobodyさん2011/07/21(木) 13:41:48.70ID:bT1+m3ud
はじめまして
Rails2.3.8

view/hoge/index.html.erbにて
DB:hogesのhoge.fooとhoge.barをプルダウンの要素にして、
絞り込むUIを作ろうとしています。

[hoge.foo▼] [hoge.bar▼] 《検索》
<tabale> 〜 </table>

画面を開いたときは、table部は全レコ表示
プルダウンでfooとbarを選択→検索押下で、
foo=value1、bar=value2で絞り込んだレコードだけ表示
プルダウン未選択の場合はすべて表示

解説ページか、サンプルコードを紹介願います
当方、非コーダのシステム部員でレベル低いです
0014nobodyさん2011/07/21(木) 15:23:53.61ID:/ztmC1CW
ruby on rails プルダウンの連動についてご質問します。 | OKWave
http://okwave.jp/qa/q5734865.html

selectボックスとAjax
http://d.hatena.ne.jp/itoasuka/20060411/1144741664
0015nobodyさん2011/07/21(木) 15:26:57.85ID:/ztmC1CW
教えて! Watch - Ruby on Rails でプルダウン
http://oshiete1.watch.impress.co.jp/qa4946311.html

お題目うぉっち:rails でドロップダンリストを使う
http://blog.livedoor.jp/maru_tak/archives/50605007.html
0016nobodyさん2011/07/21(木) 19:16:02.59ID:???
>>13
多分、簡単すぎてそんなサンプルとか解説は出てこないかも。

>>14-15 はプルダウンの連動とかだし。

0017nobodyさん2011/07/21(木) 21:39:39.56ID:/ztmC1CW
DBサーバーの負荷分散 | Think IT  
http://thinkit.co.jp/story/2011/07/21/2201
0018132011/07/22(金) 10:44:35.42ID:WHc+Ckrb
>>16
簡単、、、ですか。ずーーーーーっと>>14-15みたりググリながらやってるけど
コンボボックスすら作れません。

やりたいのは、野菜の見積データを卸に入力させてそれを比較表にして見ることです。
卸が入力したいろんな野菜の見積データを、下記で絞り込んで同じ規格の野菜だけ一覧にしてみたいのです。
hinomu(玉ねぎとか大根とか)
kikaku(野菜の大きさ。Lとか2Lとか)
ryoumoku(何コ入り)

つづく
0019132011/07/22(金) 10:47:07.07ID:WHc+Ckrb
承前
まず、品目でコンボボックスを作りたいのですが、普通につくると重複するのでgroup byしたいのですが
<%= collection_select( :hinmoku_id, Vegetable.find(:all, :group => "hinmoku") :id, :hinmoku, :include_blank => '品目を選択' )%>
で動きません。
0020nobodyさん2011/07/22(金) 10:57:40.61ID:QEp81h1s
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

第1引数が足りなくね?
0021nobodyさん2011/07/22(金) 11:35:48.26ID:???
基礎ができてないのにググってもよく分からないと思うよ
0022132011/07/22(金) 11:51:18.12ID:WHc+Ckrb
>>20
<%= collection_select( "hinmoku_id", "hinmoku_p", Vegetable.find(:all, :group => "hinmoku"), :id, :hinmoku, :include_blank => '品目を選択' )%>
あわせたら動きました。有難う御座います。

>>21
そうなんだけど、90%くらいまではあっという間に出来ちゃうから…。
こうやって作りながら覚えていくしか無い。


あとはconditions=>に代入していけばいいのか。
0023nobodyさん2011/07/22(金) 12:53:46.83ID:???
>>22
groupのマスタは無いのか。

あと普通viewでfindしない。
コントローラでfindしてインスタンス変数に入れて、viewで表示。
0024nobodyさん2011/07/22(金) 15:48:08.56ID:Uhqw0ffO
質問させてください。
Ruby、Railsともに昨日はじめたばかりの者です。
とりあえずは「ブラウザに http://localhost:3000 と打ったときにrailsのTOPコンテンツが表示されるのを目標 」
にして昨日今日とやってきたのですが最後の最後でつまづきました。

sudo rails new railsapp
cd railsapp
sudo bundle install
rails s

としたとき下記のエラーが出て http://localhost:3000 にアクセスしても うまく表示されません。
どうすればよいでしょうか?

=> Booting WEBrick
=> Rails 3.0.9 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/Users/taro/.rvm/gems/ruby-1.9.2-head/gems/rack-1.2.3/lib/rack/server.rb:272:in `initialize': Permission denied - /Users/taro/railsapp/tmp/pids/server.pid (Errno::EACCES)
from /Users/taro/.rvm/gems/ruby-1.9.2-head/gems/rack-1.2.3/lib/rack/server.rb:272:in `open'
from /Users/taro/.rvm/gems/ruby-1.9.2-head/gems/rack-1.2.3/lib/rack/server.rb:272:in `write_pid'
from /Users/taro/.rvm/gems/ruby-1.9.2-head/gems/rack-1.2.3/lib/rack/server.rb:207:in `start'
from /Users/taro/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.9/lib/rails/commands/server.rb:65:in `start'
from /Users/taro/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.9/lib/rails/commands.rb:30:in `block in <top (required)>'
from /Users/taro/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.9/lib/rails/commands.rb:27:in `tap'
from /Users/taro/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.9/lib/rails/commands.rb:27:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

0025nobodyさん2011/07/22(金) 16:06:34.45ID:QEp81h1s
Permission denied - /Users/taro/railsapp/tmp/pids/server.pid (Errno::EACCES)

rails new を sudo 付けて実行しているから、生成されたファイルやディレクトリが
rootユーザーのものになっている。
chown して所有者を変えてもいいし、初回なのでrailsappを綺麗に消してから sudo
なしでやりなおしてもいい。
rootでないと書き込めない箇所に書き込む必要があるときだけsudoを付ける。

rvmを使っているならbundleもsudo不要なんじゃないの?

0026nobodyさん2011/07/22(金) 16:14:05.18ID:???
bundle install --path vendor/bundle
がおすすめ

これなら他のプロジェクトのgemを気にしなくてよくなる
0027nobodyさん2011/07/22(金) 16:40:08.56ID:QEp81h1s
bundle --pathはおすすめだな。--binstubsもおすすめ。

あと、rails 3.1 rc4 は勝手に new 後に bundle を実行しやがるので、--skip-bundle 付けてる。
0028nobodyさん2011/07/22(金) 16:54:56.26ID:Z+KliAzH
Airbnb: Which programming languages does Airbnb use? - Quora
http://www.quora.com/Airbnb/Which-programming-languages-does-Airbnb-use? 

Silicon Valley Lifelog: 14ヵ月で1000%成長したAirbnbのさらなる可能性 - eBay for spaces
http://svlifelog.blogspot.com/2011/04/airbnb-ebay-for-spaces.html
0029nobodyさん2011/07/22(金) 17:04:28.47ID:Uhqw0ffO
あぁぁぁぁ!!!!!!!ありがとう!!!ついに!!ついに!!!
http://localhost:3000 で出てきました!!!
本当にありがとうございます!!!感動しました。

>>25
rvmはいっている場合はbundleもsudoも不要ですか?
そもそも、なぜbundleといって毎回railsのプロジェクトフォルダごとに
実施しないといけないのかがわからないです。
CakePHPとかの場合は純粋に初期で出来たフォルダを複製するだけで
新しいプロジェクトを始められるので。。。。。

>>26
bundleを気にしなくてもいいとはどういうことですか?
私の認識だとbundleはプラグインみたいなもので、
サーバーへアップロードする時にそれごとアップロードすることで
同じように動作してくれる。
こういう認識でしょうか?普通はサーバーに入ってるところから読み込んでくれそうなものですが。。。。。
0030nobodyさん2011/07/22(金) 17:18:45.97ID:???
>>29
> 私の認識だとbundleはプラグインみたいなもので、
> サーバーへアップロードする時にそれごとアップロードすることで
> 同じように動作してくれる。

それでだいたい合ってる

> 普通はサーバーに入ってるところから読み込んでくれそうなものですが。。。。。

グローバルな場所に gem を置いてしまうと、プロジェクトごとに gem のバージョンが違ったりすると面倒
プロジェクト内に閉じ込めてしまえばそんなことを気にしなくてもよくなる
0031nobodyさん2011/07/22(金) 17:21:54.35ID:Uhqw0ffO
>>30
なるほどー、よく分かりました。
ありがとうございました!
0032nobodyさん2011/07/22(金) 17:24:22.45ID:Z+KliAzH
http://unkar.org/r/php/1292032736/
0033132011/07/22(金) 17:39:16.81ID:WHc+Ckrb
たびたびすみません。検索って↓で良いんですよね?
form_tag({:action => "search"},{:method=> "GET"}) do
submit_tag'検索'

コントローラにdef searchを置いたのですが、
ActiveRecord::RecordNotFound in VegetablesController#show
Couldn't find Vegetable with ID=search
というエラーになりなぜかshowに飛んでるようです。何故でしょうか?
0034nobodyさん2011/07/22(金) 17:55:41.50ID:???
rake routes してみな
0035132011/07/22(金) 18:06:49.13ID:WHc+Ckrb
>>34
コマンドを打ってみたら、追記したdef searchにrouteが書かれていないようです。

submit_tag'検索'でserchにrouteさせるにはどうしたらいいのでしょうか?
0036nobodyさん2011/07/22(金) 18:29:29.82ID:???
routes の件なんだから、config/routes.rb をいじるんだな
0037nobodyさん2011/07/22(金) 18:30:21.48ID:QEp81h1s
config/routes.rb に resources :vegetables というのがあると思うけど、
これでいくつかの規則が定義される。
http://guides.rubyonrails.org/routing.html

それ以外は明示する必要がある。

RESTなんてどうでもいい場合 resouces :vegetables より前に、以下を追加

match 'vegetables/search' => 'vegetables#search'

RESTでがんばる場合、

search(検索)を「条件を付けた一覧」であると考えて

resources :vegetables do
  collection do
    get 'search'
  end
end

試してないけどこんな感じだと思う。
0038nobodyさん2011/07/22(金) 18:33:21.70ID:Uhqw0ffO
拾ってきたrailsのサンプルファイルをtestフォルダに展開して
$ cd test
$ rails s
としたときに下記のエラーが出てきてサーバーが立ち上がりません。
どうすればいいでしょうか?

Usage:
rails new APP_PATH [options]
Options:
-r, [--ruby=PATH] # Path to the Ruby binary of your choice
# Default: /Users/mikeneko/.rvm/rubies/ruby-1.9.2-head/bin/ruby
-d, [--database=DATABASE] # Preconfigure for selected database (options: mysql/oracle/postgresql/sqlite3/frontbase/ibm_db)
# Default: sqlite3
-b, [--builder=BUILDER] # Path to an application builder (can be a filesystem path or URL)
-m, [--template=TEMPLATE] # Path to an application template (can be a filesystem path or URL)
[--dev] # Setup the application with Gemfile pointing to your Rails checkout
[--edge] # Setup the application with Gemfile pointing to Rails repository
[--skip-gemfile] # Don't create a Gemfile
-O, [--skip-active-record] # Skip Active Record files
-T, [--skip-test-unit] # Skip Test::Unit files
-J, [--skip-prototype] # Skip Prototype files
-G, [--skip-git] # Skip Git ignores and keeps
中略
Description:
The 'rails new' command creates a new Rails application with a default
directory structure and configuration at the path you specify.
Example:
rails new ~/Code/Ruby/weblog
This generates a skeletal Rails installation in ~/Code/Ruby/weblog.
See the README in the newly created application to get going.
0039132011/07/22(金) 19:43:18.79ID:R9d1mjF2
ID変わってますが13@自宅です

>>37
match 'vegetables/search' => 'vegetables#search'
だと
undefined method `match' for main:Object

resources :vegetables do
collection do
get 'search'
end
end
だと
undefined method `collection' for main:Object
が出て動きません・・・
0040nobodyさん2011/07/22(金) 20:06:18.60ID:QEp81h1s
config/routes.rb の [APP]::Application.routes.draw do
...
end
の「後ろ」じゃなくて、「中」に書いて。
0041nobodyさん2011/07/22(金) 20:10:24.08ID:QEp81h1s
>>38

サンプルがRails3用でないために本来の動作をしているように見える。

script/rails があれば、railsコマンドはそいつを実行する。
そうでなければ本来のアプリひな形作成コマンドとしての動作をする。
0042132011/07/22(金) 20:16:54.13ID:R9d1mjF2
>>40
Railsのバージョン違うでしょうか?2.3.8です。

ActionController::Routing::Routes.draw do |map|
map.activate '/activate/:activation_code', :controller => 'users', :action => 'activate', :activation_code => ''
〜略〜
map.root :controller => "vegetables"
map.resource :session
map.resources :vegetables
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
0043nobodyさん2011/07/22(金) 20:17:27.63ID:Uhqw0ffO
>>41
rails3だと rails s ですよね?
script/rails が動くようにするには
rails2.0のほうも一緒にインストールしろってことですか?
0044sage2011/07/22(金) 20:22:14.94ID:???
/etc/hosts ファイルを設定したいんだけど

ターミナルでのviの使い方がうまく分からないです。

127.0.0.1 phpmyadmin

を追加したいのですが、
sudo vi /private/etc/hosts

とした後、追加するには具体的にどのような操作をすればいいのでしょうか?
またエディターなどから開いて編集とかは出来ないものでしょうか?

当方MacOS10.6 のスノーレパードです
0045nobodyさん2011/07/22(金) 20:26:38.23ID:???
>>43
持ってきたサンプルがrails2で作られたもんじゃね?ということ

>>44
スレチ
ggrks
0046nobodyさん2011/07/22(金) 20:33:14.10ID:QEp81h1s
>>42

失礼。2系だったのね。

やばい、2系のルーティングの書き方忘れているわ、俺。

非RESTなほうは
map.connect 'vegetables/search', :controller => 'vegetables', :action => 'search'
かな。上から順にテストされることに注意。

>>43

> rails3だと rails s ですよね?

YES
> script/rails が動くようにするには

そもそも、そのサンプルに script/rails はあるの? と尋ねたつもり。

あれば、サンプルのルートディレクトリで rails s とタイプしたときに
script/rails s に処理が委譲されてサーバが走り出す。

なければ、プロジェクトの外で rails s とタイプしたのと同義になり、Rails3では
そんな使い方はないので元の質問のように使い方が表示される。

> rails2.0のほうも一緒にインストールしろってことですか?
NO
0047132011/07/22(金) 20:46:32.88ID:???
>>46
serachに渡るようになりました!大感謝です。
・・・ここからが本題ですね。今日はもうやめます。
0048sage2011/07/22(金) 21:28:59.19ID:???
ホームディレクトリにいて
rails generate model hoge hoge

としたとき、モデルはどこの格納場所(user/binみたいなかんじで)に作成されますか?

0049sage2011/07/22(金) 21:38:44.26ID:Uhqw0ffO
showという空のアクションのみが入った
memberというコントローラーを作りました。

しかし http://localhost:3000/member/show へ接続すると
RuntimeError

!!! Missing the mysql2 gem. Add it to your Gemfile: gem 'mysql2'
Rails.root: /Users/hoge/Cart

となります。どうすればいいですか?
0050nobodyさん2011/07/22(金) 21:39:41.19ID:???
エラーメッセージぐらい読めよ
■ このスレッドは過去ログ倉庫に格納されています