【RoR】Ruby on Rails Part13
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/11/04(金) 17:06:24.32ID:???【Ruby】Ruby on Rails Part12
http://hibari.2ch.net/test/read.cgi/php/1311050686/
■参考サイト
<英語>
本家: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/
0617nobodyさん
2012/01/13(金) 11:46:33.49ID:???0618nobodyさん
2012/01/13(金) 11:53:00.69ID:???Rubyにはopen_uriというライブラリがあると聞いて、Rubyでは「uri」と「url」を使い分ける文化があるのかなと思いましたが、
Railsではどうなんだろうと思った次第です。
0619nobodyさん
2012/01/13(金) 12:21:59.29ID:???>自分のイメージ的には、ページキャッシュで、
>キャッシュに含めたくない部分を何らかのタグ(タグじゃないかもしれませんが)で囲い、
>その囲った部分はキャッシュに出力されない。というようなことがもし可能なら、簡単なのだけれど・・・と思っています。
>このような処理は可能なのでしょうか?
そういうやり方があってもいいと思う。
(PHPのテンプレートエンジンであるSmartyには似たような機能があったはず。)
ただRailsにはなかったと思うから、キャッシュしたHTMLをさらに加工して出力する仕組みを自分でつくる必要がある。
もしくは、キャッシュにはその文言を含めず、かわりにクッキーに格納してそれをJavaScriptで出力する。
0620nobodyさん
2012/01/13(金) 16:23:02.19ID:???キャッシュされたあとにログアウトしたときは出ないぞ
0621初心者
2012/01/13(金) 16:36:02.23ID:mEqOOBY4認証に関しての質問です。
いままで、Rails解説本を見て、自作の認証を行っていました。
POSTでユーザとパスワードを送ってもらって、認証できれば、
あとはセッションで、同一人物であることを確認する方法です。
deviseの導入を考えているのですが、
Database Authenticatable、Token Authenticatable
というのは、それぞれどういうものでしょうか?
(どちらのモジュールを有効にするかで悩んでいます。)
漠然とした質問ですが、ヒントでも教えてもらえないでしょうか。
よろしくお願いします。
0622nobodyさん
2012/01/13(金) 16:46:09.56ID:???http://d.hatena.ne.jp/babie/20100729/1280381392
日本語でぐぐって一番最初にHITした記事
0623621
2012/01/13(金) 20:16:27.47ID:???APIとしてサービスを公開するときに必要なんですね。知りませんでした。
とりあえず、ブラウザからアクセスして、認証のみ付けたいので、Database Authenticatableのみでよさそうでした。
0624nobodyさん
2012/01/13(金) 21:43:02.56ID:???自動ログインでcookieから。
仮登録とかメール変更なんかで token利用。
0625nobodyさん
2012/01/13(金) 23:08:27.44ID:???0626nobodyさん
2012/01/13(金) 23:41:48.48ID:???sessionもcookie使うけど。
ログイン画面によくある「次から自動ログイン」のチェックボックスのあれは、cookieにトークン入れとく。
よくある認証プラグインでは、
login_from_cookie と login_from_session みたいな感じで分かれてる。
0627nobodyさん
2012/01/14(土) 04:15:33.52ID:???http://d.hatena.ne.jp/kyoro353/20111223/1324589389
0628nobodyさん
2012/01/14(土) 12:50:47.82ID:???http://rails-users.jp/
http://python-users.jp/
0629nobodyさん
2012/01/14(土) 15:20:38.61ID:OUqaG7y7javascriptならできるんですけど・・・・
0630nobodyさん
2012/01/14(土) 15:21:42.25ID:dAISp9Jt0631nobodyさん
2012/01/14(土) 15:33:13.30ID:OUqaG7y7つまり、CoffeeScriptからクッキーを参照、操作できないということでしょうか・・・?;;
0632nobodyさん
2012/01/14(土) 16:07:29.03ID:???0633nobodyさん
2012/01/14(土) 16:19:57.74ID:OUqaG7y7HTMLとJavaScriptでしょうか?
0634nobodyさん
2012/01/14(土) 17:20:17.06ID:???scaffoldで雛形作ってそこからいじろうとするとさっぱりだった。
scaffoldをやめたら簡単に飲み込めた。
0635nobodyさん
2012/01/14(土) 17:22:57.80ID:8reKjql10636nobodyさん
2012/01/14(土) 17:25:16.34ID:???scaffoldのコード少しいけてないけどな。
どちらかというと基本抑えるために読む用のコードだと思ってるので、理解できたら rails gで好きなようにしたら良いと思う。
0637nobodyさん
2012/01/14(土) 17:55:40.03ID:MzyBrOABRuby1.8.7 + Rails 3.0 で運用していたシステムの、Ruby側のVersionを 1.9.2 に上げることになりました。
通常の string型のカラムは問題はないのですが、
ActiveRecord のserializeカラム機能を利用した上で、HashやArrayに格納していた文字列を
表示しようとするとエラーになるようになりました。
incompatible character encodings: UTF-8 and ASCII-8BIT
要は、1.9以降は文字列がエンコード情報を持つようになったために起こっている問題です。
最悪、全てのレコードを精査して、
DBデータの再構築(全ての対象データを String.toutf8 して再保存する)
をするしかないのかなと思っていますが、もっとスマートな解決策を知っている方はいませんでしょうか。
0638nobodyさん
2012/01/14(土) 18:11:41.19ID:???0639nobodyさん
2012/01/14(土) 18:30:48.88ID:???ちゃんと日本語を含んだコメントやコードのある .rb ファイルは、先頭にマジックコメントが付いてるんだろうな?
# coding: utf-8
0640nobodyさん
2012/01/14(土) 18:39:21.60ID:???たとえば、ページAとページBがあるとします。
そしてページBのCoffeeScriptに以下のコードを書きました。
----------------------------------
$ ->
$(document)
.ready ->
alert "onload"
----------------------------------
すると「onload」というメッセージが出るのですが、これがページAを表示したときにも出てしまいます。
理想としては、ページBで読み込み完了した時のみ、「onload」のメッセージが出てほしいのですが、どうしたらよいのでしょうか?
ググってもあまり情報がなく、皆目見当がつかない状態です。
分かる方がおられましたら、どうかお願いします。
0641nobodyさん
2012/01/14(土) 18:41:45.51ID:???すみません、CoffeeScriptのソース部分で、スペースが削られてしまいました。
改めて以下に書きます。
$ ->
$(document)
.ready ->
alert "onload"
0642nobodyさん
2012/01/14(土) 19:03:20.62ID:???0643nobodyさん
2012/01/14(土) 19:23:00.89ID:dAISp9Jt0645nobodyさん
2012/01/14(土) 19:30:56.72ID:BK0/OR0A//= require_tree .
と書いてある以上、app/assets/javascripts の下に置いたら
全部まとめて1つのファイルになって、全ページで読み込まれる。
ページのURLとか、bodyのidとかで、動作対象ページと判断がつく場合だけ
動くように書けばいいんじゃないの?
あと、 jQuery では $(callback) が $(document).ready(callback) と同義なので、
$-> alert('onload')
でよいと思う。
0646nobodyさん
2012/01/14(土) 19:35:16.16ID:???返答有り難うございます。
それがerbファイルの中で利用している部分なのです。
erbファイルに
<% # -*- coding: utf-8 -*- %>
を書くなども試してみたのですが、駄目でした。
0647nobodyさん
2012/01/14(土) 19:36:04.88ID:???なるほど、全ページで読み込まれるのですね。
その点を知りませんでした。
お教えいただき、ありがとうございました。
0649nobodyさん
2012/01/15(日) 01:30:43.73ID:???プログラマががんばって生産性が上がれば担当しているお客様をふやして給料も上がる。というビジネスモデル
http://www.publickey1.jp/blog/11/post_191.html
0650nobodyさん
2012/01/15(日) 01:41:18.63ID:???頑張って1人で何人分も仕事したら給料上がるとか
0651nobodyさん
2012/01/15(日) 02:10:41.77ID:???0652nobodyさん
2012/01/15(日) 03:21:32.46ID:???0653nobodyさん
2012/01/15(日) 06:44:56.04ID:SjKDw288最近Railsを始めた初心者です。
Rails3 のActiveRecordについて質問です。
Post
belongs_to :User
User
has_many :Posts
となっており、
PostsController#indexにおいて、
respond_to do |format|
format.json { render json: @posts }
end
という形で@postsを返す際に、Userモデルのnameを含めたいと考えました。
@posts = Post.select('posts.title,users.name').joins(:User).limit(10)
としてやると、
SELECT posts.title,users.name FROM `posts` INNER JOIN `users` ON `users`.`id` = `posts`.`User_id` LIMIT 10
となり、発行されるSQL的には良いのかなと思っているのですが、
返ってくる値に利用される値はposts.title のみになってしまいます。
なんかとんでもない初歩的なところで躓いてるような気がするのですが、
いろいろ調べたり試したりしてハマってしまってます。
なにか方針やヒントなど、
諸先輩方のご教示をいただければ幸いです。
0654nobodyさん
2012/01/15(日) 09:12:28.97ID:???てな感じかと
0655nobodyさん
2012/01/15(日) 09:33:24.49ID:???あと実コードは違うのかも知れないが、関連のシンボルは小文字で(:user)。
0656nobodyさん
2012/01/15(日) 10:23:01.12ID:nqvAfoHqassets/javascript/application.js に書かれている
//=require jquery
の実体(jquery.js)はどこにあるんでしょうか?
普通は、assets/javascript以下に置いてあるのかと思うんですが、ありません。。
公式サイトなどから毎回ダウンロードするような処理が組み込まれている(?)んでしょうか。
これから、jqueryを使おうと思っていて
自分のRailsのjqueryのバージョンがどうなってるか、
メンテナンスをどうするか
実体がどこにあるかわかならいと
調べようがないなと思い、質問させてもらいました。
ご存じの方教えてください。よろしくお願いします。
0657nobodyさん
2012/01/15(日) 12:53:44.45ID:8bjFmpXJGEM_HOME/gems/jquery-rails-VER/vendor/assets/javascripts
0658nobodyさん
2012/01/15(日) 15:14:06.66ID:???0659nobodyさん
2012/01/15(日) 15:42:40.18ID:8bjFmpXJ0661nobodyさん
2012/01/16(月) 12:32:09.25ID:???EBS用いれば、サーバー停止 してもデータは消えない
EC2はIPアドレスが毎回変わってしまう
EIP(Elastic IP)を用いて固定アドレスを割り当て可能
クラウドは障害がおきると何もできない
物理DC/サーバーも障害は起こる。
クラウドの良さは、障 害からの復帰に複数の手段があり、備えておける
http://www.slideshare.net/kentamagawa/aws-9170814
http://www.slideshare.net/kentamagawa/ss-8786548
http://www.slideshare.net/yuumi3/aws-on-rails
0662653
2012/01/16(月) 17:41:59.25ID:???>>655
ありがとうございます。
rails 3.1.3 で普通に返ってきました。(関連のシンボルは実コードも:Userになっていたので修正しました)
rails console でクエリの形を色々いじくって、返り値の値をみていたのせいか、
実際にjsonとして吐き出した時と返り値が違っていたので、ちょっと混乱していました。すんません。
0663nobodyさん
2012/01/16(月) 18:18:36.01ID:It2/qso7元に戻すいい方法ありませんか?ちなみにfirefoxで発生します。
0664nobodyさん
2012/01/16(月) 22:50:16.73ID:???結局他の認証ツールは情報が少ないのとrailsバージョン的にresthul_authenticationを使って行くことにしました
目標はユーザー登録、ログイン、ログアウト、adminのみアクセスできるページを作ることです。
http://www.aise.ics.saitama-u.ac.jp/~gotoh/NetBeansWithRestfulAuthentication.html
こちらのサイトを参考に、メール認証機能、パスワード変更機能、パスワード忘れ機能を省いて行く事に挑戦しようと考えました
mail.rb以降を飛ばしてpermissionの生成に移り、その他必要のなさそうな機能追加を無視して進めています
users_controller.rbのcreateやupdateをどうするべきかわからないのでアドバイスをもらえないでしょうか
環境は上記サイトとほぼ同じでsqliteでなくmysqlを使っています
またresthul_authenticationはプラグインでなくgemでインストールしました
0665nobodyさん
2012/01/16(月) 23:50:09.16ID:???すいません、>>664の質問はスルーでお願いします
もう時間もないのでアクセスできるコンピューターを限定して管理ページにだけ単純な認証機能をのせることで代用したいと思います
アクセス制限はapacheで公開するときに簡単に設定できるみたいですし・・・
スレ汚しすいませんでした
0666nobodyさん
2012/01/17(火) 00:06:10.11ID:???権限はcancanでも使えばいいし。
0667nobodyさん
2012/01/17(火) 10:45:36.97ID:xcCT9DhOhttp://d.hatena.ne.jp/uncafe/20110919
データベースのレプリケーション(複製)では、slaveに最低3台のサーバを適用している。
http://jibun.atmarkit.co.jp/ad/comp/112mitsu/01.html
0668nobodyさん
2012/01/17(火) 10:51:58.18ID:46QLTXdT緩やかな下落傾向にある一方で、C#は上昇傾向が続いており、特にここ数年は上昇傾
向が強くなっている。
今後しばらくは、C#とC++で順位の入れ替えを繰り返すものと見られるが、最終的には
C#が3位、C++が4位に落ち着く可能性が高い。また、Objective-Cも急成長を続けており、
この傾向が続いた場合には、C#、Objective-C、C++という順位に変わっていく可能性もある。
上記のほか20位以内に入ったプログラミング言語としては、Rが19位に、Luaが20位に
入った点が注目される。
特に、統計処理や統計データのグラフィック化などに利用されるRプログラミング言語は、
ここのところ注目が高まっている。Rの機能拡張が、Googleの支援によって実現したこと
などもその一因となっているものとみられる。
1 Java 17.479 (-0.082) 18ヵ月連続1位
2 C 16.976 (-0.081)
3 C# 8.781 (+0.576) 3位へ浮上。上昇傾向
4 C++. 8.063 (-0.189) 4位へ下落
5 Objective-C 6.919 (+0.114) 上昇傾向
6 PHP 5.710 (-0.291) 下落傾向
7 (Visual)Basic 4.531 (-0.226)
8 Python. 3.218 (-0.274)
9 Perl. 2.773 (+0.301)
10 JavaScript 2.322 (+0.123)
11 Delphi 1.576 (+0.331)
12 Ruby. 1.441 (-0.053)
http://news.mynavi.jp/news/2012/01/12/058/
0669nobodyさん
2012/01/17(火) 13:37:22.61ID:???0670nobodyさん
2012/01/17(火) 14:14:16.72ID:???どうしても必要ならコントローラから渡したり、erbにして取ったりはできる。
0672nobodyさん
2012/01/17(火) 19:06:28.60ID:???0673nobodyさん
2012/01/18(水) 13:43:28.80ID:???Railsで作成したプログラムからテーブルの列を変更することはできますか?
ユーザー側からテーブルの変更をできるようにしたいです.
0674nobodyさん
2012/01/18(水) 14:11:45.08ID:???migrationと齟齬出るし。
使ってるものによっては、アプリサーバの再起動も要る。
ある人が列消したりしたら、同時に使ってる人はエラーになる。
おとなしくphp*admin使えば?
0675nobodyさん
2012/01/18(水) 14:15:42.32ID:???やっぱりmigrationで毎回保守してる人が回さないとダメかー
0676nobodyさん
2012/01/18(水) 14:23:30.56ID:???あらかじめ多めにカラム取っておくとか。
一部のデータはjsonにしてtextのカラムに入れるとか。
検索必要ならviewみたいなの用意しとくとか。
住所録ならそんなに増えないでしょ。
0677nobodyさん
2012/01/18(水) 14:32:14.43ID:???項目ごとに独立したモデルを作る方法です.
[User]
name:string
furigana:string
[Attr]
attrname:string
attrdata:string
user_id:integer
な感じです.
で,別途AttrInfoモデルってのを作って項目の管理をする.
[AttrInfo]
attrname:string
正しいモデル図の書き方忘れちゃったから説明下手かもしれないですが,
そんな感じで子モデルとして項目を独立させる方法が楽かなぁと.
項目もフレキシブルな感じのほうがいいので..
今は,一つのフォームで複数の子モデル作成するとこで詰まってます.
0678nobodyさん
2012/01/18(水) 14:43:48.36ID:???0679nobodyさん
2012/01/18(水) 15:22:08.27ID:???0680nobodyさん
2012/01/18(水) 16:18:35.88ID:???Thx.できました!
>>679
MongoDBまだ理解してないですが,今回はユーザーが
DB操作せずに項目の増減できるようにしたいのでこんな感じになってます.
0681nobodyさん
2012/01/18(水) 22:57:41.69ID:NIE7IPJ60682nobodyさん
2012/01/18(水) 23:24:43.83ID:???0683nobodyさん
2012/01/19(木) 06:35:32.69ID:???http://devcenter.heroku.com/articles/rails31_heroku_cedar
RAILS_ENV=production bundle exec rake assets:precompile
0685nobodyさん
2012/01/19(木) 19:03:02.74ID:kCr+nbf20686nobodyさん
2012/01/20(金) 01:48:49.34ID:Bqw4Dvtwhtml_escapeとかはERB::Util.で行けるけど
image_tagとかそこらへんが使えなくて困ってます
include AssetTagHelperで行けるのかと思ったけど見つかりませんと言われるし
0687nobodyさん
2012/01/20(金) 07:40:20.22ID:???viewを使いたくない理由とは
0688nobodyさん
2012/01/20(金) 09:40:22.52ID:6rMlMhcMViewを使いたくないのではなくて、負荷を軽減するために
予めHTMLに変換してしまってDBに保存したいです
0689nobodyさん
2012/01/20(金) 10:25:14.23ID:???Railsのキャッシュ使うのはダメなの?
0691nobodyさん
2012/01/20(金) 10:57:41.22ID:6rMlMhcM言うなれば2chの掲示板みたいな機能でして
URLや画像をタグ化した状態で保存したいです
DB負荷を避けるために一定条件でDat落ちさせ
後ほどそれをテキストファイルに書きこんでdat化する作業もあるので結果的に楽なのです………
0692nobodyさん
2012/01/20(金) 15:06:46.25ID:0HmqnXsV0693nobodyさん
2012/01/20(金) 19:37:05.84ID:???ページキャッシュやフラグメントキャッシュがタグ化した状態で保存する機能なのだが
キャッシュのこと知らないで書いてるだろ
0694nobodyさん
2012/01/21(土) 02:32:19.08ID:???Agile Web development with Rails のebookも更新されとる。
0695nobodyさん
2012/01/21(土) 05:46:25.13ID:vuwYpWFihttp://weblog.rubyonrails.org/2012/1/20/rails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store
https://twitter.com/#!/dhh/status/160412306537328640
0696nobodyさん
2012/01/21(土) 09:23:29.82ID:rw9MCCDR申し訳ありません、どれをIncludeすればいけますか?
先程書いたとおりassetHelperでは無理でした
>>693
ページキャッシュはしってますよ
でも、ページキャッシュではなくDBに保存しなければならないのです
そういう仕様なのでそう作らないと怒られるのですよー
他にも escape_javascriptをcontroller内で使いたいとか色々あると思うんです
0697nobodyさん
2012/01/21(土) 09:29:06.70ID:???0699nobodyさん
2012/01/21(土) 09:41:24.26ID:???ActiveSupport::Cache::Store を継承して要求しようにあったストアを作る。
0700nobodyさん
2012/01/21(土) 09:44:14.53ID:???http://devcenter.heroku.com/articles/memcache
0701nobodyさん
2012/01/21(土) 09:47:01.40ID:???require 'dalli'
dc = Dalli::Client.new('localhost:11211')
dc.set('abc', 123)
value = dc.get('abc')
0703nobodyさん
2012/01/21(土) 23:00:45.95ID:vuwYpWFihttp://www.onas.asia/home/kwansaiit/doc/Kwansai-IT-Benkyo-Enkai_2012-01-13-Shimoji.pdf
rubyの全くあたらしいフレームワーク
http://atnd.org/events/24013
0704nobodyさん
2012/01/21(土) 23:03:51.32ID:vuwYpWFihttp://kwansaiit.blogspot.com/2012/01/2012-01-1314it.html
0705nobodyさん
2012/01/22(日) 00:32:20.37ID:???0706nobodyさん
2012/01/22(日) 00:58:43.15ID:???すごい重いんだけどおすすめなにかない?
0707nobodyさん
2012/01/22(日) 01:22:57.72ID:???メモリの量とかCPUとかディスクにもよるし。
メモリの使い具合にも、SQLにもよるし。
0709nobodyさん
2012/01/22(日) 06:31:01.16ID:???CPUは常時50%くらい
メモリも常に1Gは余ってる(4GB)
IOもそんなに多くない
でも、めっちゃ重いんだ
0710nobodyさん
2012/01/22(日) 09:25:06.68ID:???0711nobodyさん
2012/01/22(日) 10:44:06.70ID:sE8mL0/vrails generate migrate add_カラム名_to_テーブル名 カラム名:型
って書くと思うんですが、
カラム名の中にアンダーバーを使いたい場合はどう書けばいいのでしょうか?
0712nobodyさん
2012/01/22(日) 11:54:22.60ID:???アンダーバーを使わずcamel caseで書けばいいのですね、
おさわがせしました。
0713nobodyさん
2012/01/22(日) 12:47:08.93ID:???rubyはバージョン間の互換性が凄く低い
とてもじゃないけど、保守的とは思えない
学生の文化祭ノリで言語作ってるから性質が悪い
0715nobodyさん
2012/01/22(日) 13:06:10.63ID:???それは感じた事ないな。
1.8系と1.9系は中身かなり違うが、書く分には対した違いではない。
遥か昔の1.4とかに比べても、そんなに変わってないと思う。1.6辺りからだと尚更。
MLに「こうしたら?」みたいな提案はよくあるけど、かなりの確率でmatzにリジェクトされてる。
昔はserializeしたデータにバージョン間で互換性がなくて実質使えなかったが、そういうのも聞かなくなった。
学生ノリはPHPとかスゴいよね。
関数名のアンダーバーをバージョン上がる毎に付けたり取ったり。
■ このスレッドは過去ログ倉庫に格納されています