トップページ⇒php
986コメント359KB

【Ruby】Ruby on Rails Part8

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/09/13(日) 20:49:34ID:kz4rC4Dx
■前 Ruby on Rails Part7
http://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/
0175nobodyさん2009/10/06(火) 00:19:49ID:???
あ、すみません
簡単に言うとWindowsで書いたソースコードをLinuxのルートにコピーするだけで
動くんでしょうか?
0176nobodyさん2009/10/06(火) 00:40:32ID:???
環境言ってくれなきゃ何もアドバイスしようが無いんだってば
Webサーバーは使うの?RubyとRailsのインストールと設定は終わってるの?DBは?
0177nobodyさん2009/10/06(火) 00:59:22ID:???
何度もすみません

開発環境はOSがWindowsVistaとXP。NetBeansを使おうと思っています。
実行環境はOSがUbuntu9.04。
開発実行環境ともRubyのバージョンは1.8.7、Railsは2.3.2です。
WebServerはApacheです。
DBはsqliteかMySQLどちらが良いか検討中です。
0178nobodyさん2009/10/06(火) 01:29:31ID:???
> Linuxのルートにコピーするだけ
ってほど簡単ではないけど普通はそのままのコードで動くよ。

あなたの文章からにじみ出てくる理解度だと、LinuxでRails環境を
作った経験があるひとに初めの1回だけお願いすることをオススメするよ。

0179nobodyさん2009/10/06(火) 01:37:49ID:???
ありがとうございます。

残念ながらシュミグラマのため、周囲にプログラミング出来る人や
Linuxに習熟した人は1人もおりません。
一応Ubuntu専用機および仮想マシン上でRails環境を自力で構築して
Linux状でScaffoldしたテストプログラムが正常に動くことは確認しております。
(Railsのバージョンで手こずりましたが)
が、指摘された件に関してはかなり不安があるのも事実なので
本格的な開発に入る前に質問させて貰いました。
まだたのしいRubyとRailsレシピを一回ずつ読んだ程度なので
もう少し準備しようと思います。
0180nobodyさん2009/10/06(火) 02:03:27ID:???
自力でLinux上のRails環境を作れたなら時間をかけて
頑張れば何とかできるのではないでしょうか。

Windowsでつくったアプリケーションも普通は問題なく動きます。
気をつけるのは、
・文字コードはUTF8
・改行コードに気をつける
・ファイルシステムのディレクトリ区切り文字
・ファイルのテキスト/バイナリモード
・その他Windows依存のこと
ぐらいかなあ。

頑張ってください。
0181nobodyさん2009/10/06(火) 02:33:02ID:???
お節介だけど、サイト構築だけが目的の趣味プログラマならそれでいいけど
プログラミングを勉強したいという趣味プログラマならLinux環境で開発することをお勧めする。
0182nobodyさん2009/10/06(火) 02:45:11ID:???
I think so
0183nobodyさん2009/10/06(火) 07:38:34ID:???
>>181
ターミナルへのお誘いきたぁ
0184nobodyさん2009/10/06(火) 08:36:54ID:???
>>180
重ね重ね、ありがとうございました。

>>181
時間と環境と勘案して検討してみます。
0185nobodyさん2009/10/06(火) 09:45:34ID:???
Poderosaおすすめ、Puttyもいいけど。
0186nobodyさん2009/10/06(火) 11:31:18ID:???
UTF-8 TeraTerm だろ JK

Putty は、いろんな便利な機能があるけど、いまいちなじめない。
0187nobodyさん2009/10/06(火) 13:06:28ID:???
Linux環境で開発した方が結果的に時間も短くて済むよ
0188nobodyさん2009/10/06(火) 14:21:23ID:???
いやそれは無いわ
emacs暦8年ぐらいだけどeclipse開発の方が効率は上だぜ
0189nobodyさん2009/10/06(火) 14:41:07ID:???
WindowsのRuby遅いからなぁ
ちょっとした事も遅いから、Linuxの方が良いな
0190nobodyさん2009/10/06(火) 20:25:04ID:???
NetBeansで開発だからjrubyだよ
ネイティブ版使うより安定した環境だと思う
使ったことないけど
0191nobodyさん2009/10/06(火) 20:32:13ID:???
ねっとびーんずって何?美味しそう
0192nobodyさん2009/10/06(火) 22:28:07ID:???
Windowsで開発なんて難易度高すぎる…
0193nobodyさん2009/10/06(火) 22:34:04ID:???
俺の想像ではあるが、10年後、20年後にはCUIでの開発ってレアな
存在になっていると思うぞ。
0194nobodyさん2009/10/06(火) 22:38:03ID:???
>>191
UTF-8でいうと仙豆です
0195nobodyさん2009/10/06(火) 22:58:26ID:???
CUIコンパイラも新しくなるんだろうか?
0196nobodyさん2009/10/07(水) 05:36:01ID:???
ここって質問して良いのかな。

passengerをインストールしてとりあえずhttpd.confにLoadModuleとPassengerRoot
とPassengerRuby書いてApache再起動したら(バーチャルホストは書いてない)、
Apacheがセグメンテーション違反で落ちるようになりました。
エラーログ見ると「PassengerRoot configuration option is not specified」と
なっているのですがPassengerRootはコピペしただけ。何となくわざと間違った
パス指定してみたら「passenger-spawn-serverがないよ!」ってエラーが出たん
ですが、なぜ正しいパスだとエラーが違うのか……
あと気になったのは間違ったパス指定するとpassenger以下のlibにpassenger-spawn-server
探しに行ってるんですが、passenger-spawn-serverがあるのはbinの中だよ……
こんなんでハマった人、他にいますか?
いちおう、rails2.3、passenger2.2.5。apacheは2.0.46です。
0197nobodyさん2009/10/07(水) 08:15:30ID:???
少なくとも設定が間違っているならプログラムがエラーを検出して
起動に失敗したりするはずで、それがセグメンテーション違反で落ち
てしまうのは、プログラム自体のバグかモジュール作りで失敗しているか。


0198nobodyさん2009/10/07(水) 08:27:32ID:???
教祖がデビアンで開発してるから、リナクスで開発したほうが簡単だよ。
わざわざウィンドウズで苦労しなくても。

インストールミスだな。
インストール方法でも張ったら誰か添削してくれるかもな。


http://pc11.2ch.net/test/read.cgi/php/1244038749/
△▲ WebProg 初心者の質問 Part19 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1158647441/
くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/987560391/
初心的な質問なのですが・・・・
0199nobodyさん2009/10/07(水) 11:13:28ID:???
>インストール方法

了解。ってもごく普通に
gem install passenger
して
passenger-install-apache-module
しただけです。ちなみにwindowsじゃなくてlinux。red hat enterprise es 3だけどです。
今日は関係すると思われるファイル全部消して1からやり直したけど失敗。全力で諦めムードです。レスくれた人、�dクス。
02001992009/10/07(水) 11:14:38ID:???
だけどです、ってなんだ。焦るな俺。
0201nobodyさん2009/10/07(水) 11:35:16ID:???
その手の実行時エラーでありがちなミスで、
ビルド時に使用したライブラリと、実行時に読み込むライブラリが異なる、ってのがあるけど、
その辺は確認したの?。lddとか、ld.conf関連変数をチェックするとか。

あるいは自分で関連ライブラリを変なとこに入れてない? /home とか /usr/local/hoge とかに。
で、ビルドに使ったユーザアカウントだけLD_LIBARY_PATHとかを設定して、
Apacheのプロセスにライブラリの場所を教えずに実行しようとしてるとか?
0202nobodyさん2009/10/07(水) 11:36:21ID:???
ld.confってなんだ。ld.so関連変数だ。焦るな俺
0203nobodyさん2009/10/07(水) 17:53:45ID:3DfRmTbM
自宅と職場で開発したいんですけどPCがwindowsで
リモートとかはできない環境です。
C#はプロジェクトフォルダごとUSBメモリにコピーして
両方で使用してたんですが、Railsだとどうするのが簡単でしょうか?
0204nobodyさん2009/10/07(水) 18:33:55ID:???
まえにJRuby + JasperReport で帳票印刷できんかなぁ、とか言ってたモンだけど...
結果、まぁ出来そう。

ただCRailsのバックグランドでJRubyを動かす場合、JRubyにはforkがないんで、Backgroundrbは動かない。
JRuby対応のbackgroundrb代替品を探すか、自前のDRbサーバをrunnerで動かすかする。
kovyrin-loopsっていうのがgithubにあるけど、これはJrubyで普通に動く。
まぁ中身はシンプルってか大したことはしてないけど。

>>203
なんらかのSCMのリポジトリをUSBメモリに入れて持ち回せば?
0205nobodyさん2009/10/07(水) 19:36:32ID:???
passenger-spawn-server は自分で作らないとだめ
空のファイルで実行権限があればおk
だった気がする
0206nobodyさん2009/10/08(木) 00:33:25ID:???
passenger-spawn-server を自分で作ったことなんて一度もねえよ
0207nobodyさん2009/10/08(木) 01:09:08ID:???
rails.vimのメジャーバージョンアップ

rails.vim - Ruby on Rails: easy file navigation, enhanced syntax highlighting, and more : vim online
http://www.vim.org/scripts/script.php?script_id=1567
rails.vim script version4.0
0208nobodyさん2009/10/08(木) 04:13:15ID:???
emacsでrubyとかrails補完できるものってないの?
ruby-mode.elとかってインデントとか色を制御するだけだよね?
0209nobodyさん2009/10/08(木) 10:42:37ID:???
>>134の
>environments/production.rbの中でconfig.log_level = :warn
をやったのですが、相変わらずすべてのログが記録されてました…

config/environment.rbにもconfig.log_level = :warn してみましたが変わりません
passenger使ってるのですが、関係ありますでしょうか?
0210nobodyさん2009/10/08(木) 12:35:05ID:???
webserver再起動した?
0211nobodyさん2009/10/08(木) 15:36:17ID:???
>>203
mac買え、ノートタイプでもいいから
最初からインストールされてて優秀なエディタTextMateもあるから初心者にとって超簡単。
0212nobodyさん2009/10/08(木) 16:12:20ID:???
補足。
・(Railsが)最初からインストールされてて
・優秀なエディタTextMateも(シェアウェアで)ある
0213nobodyさん2009/10/09(金) 00:21:52ID:???
>>208
あるよ
0214nobodyさん2009/10/09(金) 03:10:21ID:???
railsって10分でブログが作れるらしいね。
ということは相対的に考えて100万ぐらいの軽い案件は2〜3日で出来るわけか
1週間で1案件として月400万、年収5000万は堅いな
夢ひろがりんぐ!
0215nobodyさん2009/10/09(金) 07:49:14ID:???
>>214
おめーさてはバカだろ?
0216nobodyさん2009/10/09(金) 11:50:00ID:???
>>215
おい、スルーしろ
単なる釣り針に引っかかるんじゃねYO
0217nobodyさん2009/10/09(金) 17:25:38ID:???
AWDwR3rdの邦訳はいつ出るのかな.
原著発売日にはすでに日本語への翻訳が始まってると
著者が書いてたけど,それ以降なにもわからんのです
0218nobodyさん2009/10/09(金) 17:32:15ID:???
3rd は初期 Rails 2 だから、今更出るのは問題あるからじゃないかな。
0219nobodyさん2009/10/10(土) 08:11:21ID:???
Railsやるのに英語避けられないから
両方の勉強のつもりで読んだら?
0220nobodyさん2009/10/10(土) 08:12:18ID:???
避けられる
0221nobodyさん2009/10/10(土) 14:02:22ID:k2nLAcqK
RESTfulの利点ってなんですか?
アクションのみで遷移してほうが簡単だと思うのですが…

0222nobodyさん2009/10/10(土) 14:54:39ID:???
>>221
「リソースとそれに対するCRUD」という形でモノを考えることを
強制されることだと思っている。
02232212009/10/10(土) 15:15:46ID:k2nLAcqK
>>221
強制されることで生じるメリットはどのようなものがあるのですか?

RESTfulに作成されたアプリのイメージがわかないです。
scaffoldで作成されるほど単純なアプリってあまりないような気がします。

02242212009/10/10(土) 15:16:52ID:k2nLAcqK
アンカー間違えました。
222の方に対する質問でした。
0225nobodyさん2009/10/10(土) 18:06:20ID:???
個人でやってる範囲だけど…

URL設計に何の制約もなければ、要望に対して一番素直と思える形
で機能を追加していってしまうことが出来て、アプリケーションが
老舗温泉旅館状態のカオスになるおそれがある。

RESTを意識すると、ある問題を、どんなリソースを用意して、どの
HTTPメソッドを送る形に分類出来るか、事前に意識する必要が出て
くるので、全体のURL構成が見渡し易くなる。

RESTが、というよりは、何かの型に自らはまることのメリットだな、こりゃ。
0226nobodyさん2009/10/10(土) 18:19:41ID:???
根拠は無いけどRESTは名前が浸透する前に廃れると思う
0227nobodyさん2009/10/10(土) 20:14:30ID:???
浸透してるからRailsで採用されたんじゃなくて?
0228nobodyさん2009/10/10(土) 21:01:24ID:???
浸透させたくなったDHHがRailsに採用したという感じではないかな。
0229nobodyさん2009/10/10(土) 21:40:48ID:???
RESTが浸透してないとか言ってるやつは、WebAPIでなんか作ってみれば?
0230nobodyさん2009/10/10(土) 21:50:07ID:???
なんちゃってRESTも多いからなー。
0231nobodyさん2009/10/11(日) 01:12:46ID:???
最近の技術はほとんど名前の後付けに過ぎないからな
0232nobodyさん2009/10/11(日) 03:54:40ID:???
ajax
cloud
0233nobodyさん2009/10/12(月) 00:31:02ID:???
型に自らはまっておくと、
link_to("詳細", record) だけで詳細へのリンクになるのが便利
0234nobodyさん2009/10/12(月) 11:26:41ID:w/VULtBT
RESTfulに書くときってコントローラとモデルが1対1になる感じですよね?
0235nobodyさん2009/10/12(月) 14:10:05ID:???
マク使うとか馬鹿過ぎw
どうせ鯖はリナックスなんだから、PC買ったほうがいいよ。
0236nobodyさん2009/10/12(月) 18:31:42ID:???
>>235
意味不明
0237nobodyさん2009/10/12(月) 19:21:15ID:PIBBLJL/
has_many関係にある2つのモデルに対して情報を登録するフォームにおいて、
error_messages_forでエラーを表示すると、2つのモデルのエラーがまとめて表示されてしまいます。
一方のモデルのエラーだけを表示するような方法はあるのでしょうか?
0238nobodyさん2009/10/12(月) 19:38:28ID:???
エラーを伏せたいほうのオブジェクトの #errors.clear でどう?
0239nobodyさん2009/10/16(金) 05:53:31ID:tsHntjAe
rubyスレで間違えて質問してしまいました。本家で質問です。

mysqlのデータを単純にcontrollerでfindで取り出してviewで表示させようとしています。
しかしブラウザでの表示が文字化けならいざ知れず、「#」になってしまいます。
具体的にページのソースを見てみると、その部分は、

#<Book:0x24319ec>

となっています(Bookテーブルのものを取り出して表示しようとしています)。
文法はコントローラで@book = Book.find(params[:id])とし、
ビューで <%=h @book.title %> という風にしているので合ってるのではないかと思っています。

(ビューでp してみたところ、ターミナルには [#<Book id: 1, title: "hoge">] となっているので、
途中までは正常に取り出せているようなのですが、ブラウザ表示のところでこうなってしまって大変悩んでいます。

macosxでMAMPを入れ、いざ開発をしようと決めたところでこのエラーです。
railsのバージョンは2.3.4です。
誰か解決策をご存知の方ご教授おねがいします。よろしくお願いします。
0240nobodyさん2009/10/16(金) 06:57:43ID:???
mysqlの文字コード設定がsjisとか?
0241nobodyさん2009/10/16(金) 07:07:43ID:???
>>239
controllerのクラス名か、ファイル名がおかしいんじゃね?
0242nobodyさん2009/10/16(金) 09:10:01ID:???
p の結果が配列に見えるんだが。
0243nobodyさん2009/10/16(金) 10:54:54ID:???
githubとかで手軽にソース公開できるようになればこんな問題も即解決
0244nobodyさん2009/10/16(金) 11:34:38ID:???
>>239
ソース上 #<Book:0x24319ec> となっているなら、
<%= @book %> と書いてしまっているはずなんだが。
02452392009/10/16(金) 13:05:10ID:tsHntjAe
>>240-244

ありがとうございます。
文字コードはutf-8になっています。クラス名も全部チェックしました。
ちなみに今朝、テーブル名を変えてみたらうまくいきました。
テーブル名を戻してみるとできません。いまだ謎です。

とりあえず解決はしたので、良かったです。みなさんありがとうございました。
0246nobodyさん2009/10/16(金) 13:15:33ID:???
すいません、↑はテーブル名ではなく、カラム名です。
0247nobodyさん2009/10/16(金) 13:25:38ID:???
単純な名前にして予約名とかぶってたんだろ
0248nobodyさん2009/10/16(金) 13:31:02ID:???
<%= debug @book %> も地味に役に立つことがあるよね。
0249nobodyさん2009/10/16(金) 13:32:05ID:???
>>247

実際は挙げた例とは違い、最初はカラムも変数もnameでしてたのですが、ほかに変えるといけました。
昔はnameでいけた気がするのですが。。。わかりません。
0250nobodyさん2009/10/16(金) 18:50:52ID:???
昔はmysqlだったが、いまはsqlightがデフォルトで、その違いのせいとか?
0251nobodyさん2009/10/16(金) 22:13:12ID:???
つーか、エラーが起きたんなら別の例に置き換えずに
そのまま上げてくれや…
0252nobodyさん2009/10/16(金) 23:30:47ID:???
>>250

いちよう
% rails sample10 -d mysql
でプロジェクトを作ったので大丈夫だと思うのですが。ありがとうございます。

>>251
おっしゃる通りです....rubyスレの方で質問させていただいたもので答えていただいたときに、
titleカラムで指摘していただいたので、具体的にそのまま上げてしまいました。
まさかそこは関係ないだろうと思っていたので。浅はかでした。混乱させてすいません。
0253nobodyさん2009/10/17(土) 05:14:42ID:???
いちよう
0254nobodyさん2009/10/17(土) 18:18:42ID:???
マカってホント情報弱者だなw
0255nobodyさん2009/10/17(土) 18:51:19ID:???
いちょう
0256nobodyさん2009/10/18(日) 00:59:25ID:???
ひぐち
0257nobodyさん2009/10/18(日) 14:09:03ID:???
J^ω^し
0258nobodyさん2009/10/18(日) 14:45:29ID:???
カッター
0259nobodyさん2009/10/19(月) 22:30:30ID:BV3oZVvu
Railsでファイルをアップロードして取り込む方法は分かるのですが、URLからWeb上のファイルをダウンロードするようなコードはどう書けばいいですか?
0260nobodyさん2009/10/19(月) 22:34:25ID:???
>>259
ダウンロードさせるのがRailsアプリで
ダウンロードするのがブラウザ?

ActionController::Base#send_data
ActionController::Base#send_file

0261nobodyさん2009/10/19(月) 23:19:48ID:BV3oZVvu
>>260

はい。ブラウザからアクセスして、Railsアプリに保存させます。
send_data, send_file試してみます。有難うございました。
0262nobodyさん2009/10/20(火) 01:18:43ID:???
URLって画像の直リンか?
0263nobodyさん2009/10/20(火) 01:19:24ID:???
それとも画像サイトのurlを指定して画像をrailsで保存したいのか?
0264nobodyさん2009/10/20(火) 02:07:36ID:E10g0f4b
まず直接リンクから取り込もうと考えています。いずれはサイトのurlを指定して取り込みたいですが、
こちらは何だか難しそうな気がするんですよね。。
0265nobodyさん2009/10/20(火) 02:34:32ID:???
public以下、もしくはapacheがよきにはからってくれる場所にファイル
を配置して構わないなら(アクセス制御とかいらないなら)、単にファイル
を置くだけでRails側では何もしなくていいよ。
0266nobodyさん2009/10/20(火) 09:19:41ID:???
open-uriじゃないの
0267nobodyさん2009/10/20(火) 09:20:39ID:???
え、アプリがどこかのサイトからhttp getするの?
0268nobodyさん2009/10/20(火) 10:15:42ID:E10g0f4b
例えばurlをフォームにコピペしてダウンロードボタンをクリックすると、
画像なりpdfファイルがパソコンに保存される、というWebアプリを想定しています。
0269nobodyさん2009/10/20(火) 10:42:16ID:???
既出だけど、そういうアプリなら、整理すれば
指定されたURLからダウンロード => open-uriライブラリ
ブラウザに結果を返す => send_dataメソッド
となる。
0270nobodyさん2009/10/21(水) 05:37:40ID:???
素直にリダイレクトするだけのほうが簡単の様な。
0271nobodyさん2009/10/21(水) 10:16:15ID:YXYYyrvA
urlからファイルを保存する時はダイアログを出現させずに、
保存先のフォルダも手動で指定せずに自動でやってほしいなと思いまして。
0272nobodyさん2009/10/21(水) 14:52:08ID:???
それはブラウザ依存だし、Rails関係ない
0273nobodyさん2009/10/21(水) 17:32:30ID:???
OSXだけの話題ですみません。昨日、Snow Leopardを入れたら、Railsがこけました。
ググると当然のように情報があったので、その通りやってみたのですが、MysqlもSqliteも
動きません。やっぱり、上書きインストールは止めとけばよかったかな。(しかもTigerから)
クリーンインストールしてみて、また報告したいと思います。
0274nobodyさん2009/10/21(水) 21:05:25ID:???
>273
ただの愚痴ならはてなにでも書けばいいのに。
■ このスレッドは過去ログ倉庫に格納されています