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

【RoR】Ruby on Rails Part13

レス数が1000を超えています。これ以上書き込みはできません。
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/
0979nobodyさん2012/02/16(木) 22:59:50.92ID:???
>>978
返信ありがとうございます。
Railsの書籍を3つほど持っているのですが残念ながら、
フォームで関連モデル先のカラム内容までを更新する方法が記載されていません。

試行錯誤しながらネットで調べていたところ、ネストを使えば良いみたいなことが書いてあったので、
お試し的にwork has one phoneという形でテストしているところです。

書籍に載っていなかったことを実現したいので
何をキーワードに調べたら良いものか分からずにいます。

知識不足ですみません。
0980nobodyさん2012/02/16(木) 23:02:33.32ID:???
>>976のfields_forを修正しました

<%= form_for @worker, :url => { :action => "create" } do |worker_form| %>
<%= worker_form.text_field :name %>
<%= fields_for @worker_form.phone do |phone_form| %>
<%= phone_form.text_field :tel %>
<% end %>
<% end %>
0981nobodyさん2012/02/17(金) 07:33:58.84ID:???
同じモデルのインスタンス同士でhas_manyのような関係を記述するにはどうしたらいいの?

掲示板の投稿記事みたいなもので、関連項目をつけたいんだけど

同じArticleモデル内でで

親子丼 →関連項目 : カツ丼、うな丼、卵とじ
カツ丼 →関連項目 : うな丼、親子丼、カツカレー

こんな風にしたい
0982nobodyさん2012/02/17(金) 07:43:13.75ID:???
>>979
nested_attributes_for をググるだけで出てくる。
コントローラでbuildするのも忘れないように。
0983nobodyさん2012/02/17(金) 07:46:51.55ID:???
>>981
has_many :through で繋げる
0984nobodyさん2012/02/17(金) 11:41:41.03ID:???
http://wiki.usagee.co.jp/ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active%20Record%20Associations
自己結合(Self Joins)
0985nobodyさん2012/02/17(金) 12:18:35.23ID:???
自己参照結合
http://japan.zdnet.com/blog/yoshimi/2007/11/22/entry_27016437/
0986nobodyさん2012/02/17(金) 14:38:44.56ID:???
ちょっとrails的なパターン?について教えてください

コントローラーで込み入った処理をしたいんですが
分割したメソッドはどこに置くべきでしょうか
コントローラー内でよい?ヘルパー?
その場合はrspecでどう試験できますか?

class HogeController
 def index
  @foo = bar
 end

 def bar
  "BAR"
 end
end

describe HogeController do
 describe :bar do
  it "returns 'BAR'" do
   (barの戻り値).should eq("BAR")
  end
 end
end
0987nobodyさん2012/02/17(金) 16:22:54.21ID:???
その処理の内容による、としか
・まずはModelに突っ込めないか考える
・完全独立ならlibの下。もっと突き抜ければgem化
てな感じかと
09889862012/02/17(金) 18:00:46.78ID:???
>>987
ありがとうございます、でもそこまでは込み入ってないです
ifの条件だけ切り出して、
個別にテストできたらなと考えています
Modelはありません
0989nobodyさん2012/02/17(金) 20:13:46.89ID:2+La73VF
コントローラなら、
* 最終的に所定のインスタンス変数がセットされ、
* 適切なビューがレンダリングされるか、
がテストできていれば、分割した個々のメソッドをテストする必要は
ないと思うんだけど。
0990nobodyさん2012/02/17(金) 22:13:19.19ID:???
ルーティングについての質問です。

よくネットサービスを見ていると
アクション名やパラメータなどはURLに表示されず

/?token=g6kuo396hbdwiou8b6e38001s

のようにワンタイムセッションのようなもので
画面の遷移を行っているのを見かけます。

railsの場合だと
hoge.com/users/1/show
だと数字の部分をカウントアップしていくだけで
他レコードの情報まで表示して取り出せてしまいます。

これを上に書いたようにワンタイムセッションのように遷移先を管理したり、
URLのコントローラー部分やアクション部分を偽装する方法があれば教えてください。
0991nobodyさん2012/02/17(金) 22:40:10.70ID:???
他のレコードまで見えても別に良いものもある。そういうのは別に構わない。

もちろん他のデータが見えてはいけないものもある。TwitterのDみたいに。
それはデータ引っ張ってくる段階、コントローラ側で弾く。

ワンタイムトークンが必要なものはそのように実装する。
ただCSRF対策とかはもう入ってるから、GETに使うのは結構限られる。
0992nobodyさん2012/02/17(金) 22:42:00.17ID:???
id連番が嫌なら、idがURLに出ないように実装する。
0993nobodyさん2012/02/17(金) 23:28:42.83ID:???
>>992
連番が嫌なら出ないようにするって

・idカラム(数字)の代わりにurlカラム(IDの代わりの用途の文字列)を用意する

・ルーティングの設定でURLが見えないようにする

って意味ですか?
0994nobodyさん2012/02/17(金) 23:34:03.69ID:???
>>991
例えば、とあるデータサイトを作ったとして
訪問者(プログラマ)にサイト内クローラーを作られ情報を自動収集されたくない場合は
それなりのルーティングを組む必要がありそうです。
何か参考意見はありませんか?
0995nobodyさん2012/02/17(金) 23:34:52.52ID:???
どちらにしても、閲覧権限のないデータを弾く必要があるのはidだろうが代わりの項目だろうが変わらないけど
0996nobodyさん2012/02/18(土) 00:00:06.15ID:???
require 'digest/md5'
hoge = Digest::MD5.new.update('aiueo')
http://yakinikunotare.boo.jp/orebase/index.php?Ruby%2FMD5%B4%D8%BF%F4%A4%C7%A5%CF%A5%C3%A5%B7%A5%E5%C3%CD%C0%B8%C0%AE
http://www.ruby-lang.org/ja/old-man/html/Digest_MD5.html
0997nobodyさん2012/02/18(土) 00:03:25.87ID:xUPBYEV4
Rails3のセッションをクッキーで保存ていうのがよくわからないんですが
サーバー側には一切データはないってこと?

だとすると、そのクッキー(セッション)が正当なものだって判断はどうしてるの?
0998nobodyさん2012/02/18(土) 00:07:24.44ID:FrtCmEYT
railsのクッキーとセッションについてまとめ - おもしろWEBサービス開発日記
クッキーもセッションも、ブラウザにデータを保存させる仕組み。
http://d.hatena.ne.jp/willnet/20080531/1212239850
0999nobodyさん2012/02/18(土) 00:34:37.37ID:FrtCmEYT
【RoR】Ruby on Rails Part14
http://kohada.2ch.net/test/read.cgi/php/1329492840/l50
1000nobodyさん2012/02/18(土) 00:35:11.19ID:FrtCmEYT
http://toro.2ch.net/test/read.cgi/hosting/1329378677/
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。