トップページ⇒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/
06966932011/09/30(金) 17:09:59.39ID:???
>>694
いや、BLOBが悪いんじゃなく、sqlite3 コマンドを使おうとしてるのが悪いと
言ってんだけど…
0697nobodyさん2011/09/30(金) 23:12:48.17ID:d8ot3xr3
bundle install --path vendor/bundle  さえしとけば
必要なものは優先的にvendorの中を覗きにいくようになるのでしょうか?
それともRails本体の中にあるgemを優先的に覗きにいくのでしょうか?
0698nobodyさん2011/09/30(金) 23:29:01.99ID:???
active scaffoldって3.1に対応してないよね?
残念だ
0699nobodyさん2011/09/30(金) 23:38:21.30ID:???
賢い皆様にお伺いしたいんだけど
管理者用のscaffoldへのアクセス制限は
どのような仕組みでかけてますか?
0700nobodyさん2011/10/01(土) 00:17:11.40ID:???
そもそもscaffoldを使わない
0701nobodyさん2011/10/01(土) 00:23:37.85ID:???
>>699の考えるscaffoldという概念は、実際と少しずれてるんじゃないだろうか
0702nobodyさん2011/10/01(土) 00:49:31.54ID:???
nginxの人だろ
0703nobodyさん2011/10/01(土) 02:48:44.76ID:ENlvmGfR
>>697
script/rails runner 'puts $:'
0704nobodyさん2011/10/01(土) 14:19:47.79ID:???
あの、大学がほとんどMacしか置いてないんでMacで勉強してるんですけど、ここで質問しても大丈夫ですかね?
0705nobodyさん2011/10/01(土) 14:23:39.48ID:???
Railsの事ならどうぞ
0706nobodyさん2011/10/01(土) 14:26:57.62ID:???
MacでのRails用環境構築とかかな?
OSのバージョンとかは書いてね
0707nobodyさん2011/10/01(土) 14:58:16.00ID:ENlvmGfR
Windowsの質問よりよほどマシ。
0708nobodyさん2011/10/01(土) 15:43:13.73ID:???
ありがとー
MacにphpMyAdminいれて鯖を作りたいです
どうすればいいですか?
0709nobodyさん2011/10/01(土) 15:47:47.53ID:???
>>708
自分のマシン?それとも共用?
0710nobodyさん2011/10/01(土) 15:55:30.50ID:ENlvmGfR
まてせめてRailsの質問にしろ。
0711nobodyさん2011/10/01(土) 16:20:48.80ID:???
まずターミナルを起動します。
0712nobodyさん2011/10/01(土) 16:42:59.87ID:???
>>699
ACL9とか使え。
0713nobodyさん2011/10/01(土) 18:41:50.31ID:???
>>709
共用です

他の人たちは黙っとけ
0714nobodyさん2011/10/01(土) 19:26:44.60ID:???
phpMyAdminの質問禁止。自分でどうにかしろ。
07157042011/10/01(土) 19:50:30.99ID:???
すいません遅くなりました、>>704の者です。

http://www.oiax.jp/rails/rails3.html を参考にして"第12回: ユーザー認証(1)"までなんとかたどり着いたのですが、
この第12回の中盤のDeviseをbundle installする過程でつまずきました。

http://www.oiax.jp/rails/rails3/authentication1.html にあるように
Gemfileに 「gem 'devise', '1.1.2'」の一文を追加し、ターミナルにてbundle installを実行したところ、
以下のようなエラーを吐いてしまいました。

「devise v1.1.2はこのバージョンのrubyに対応してないぞ」と言われてる気がするんですが、
これはrubyのバージョンを下げてしまうべきですか?
それとも対応した新しいバージョンのdeviseが出てたりするんですか?

初心者で申し訳ないですが、誰か分かる方いらっしゃいましたら教えてください。。

Ore-no-Imouto-no-MacBook-Pro:nchak hiro$ bundle install
Fetching source index for http://rubygems.org/
Bundler could not find compatible versions for gem "bcrypt-ruby":
In snapshot (Gemfile.lock):
bcrypt-ruby (3.0.1)

In Gemfile:
devise (= 1.1.2) ruby depends on
bcrypt-ruby (~> 2.1.2) ruby

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
0716nobodyさん2011/10/01(土) 20:00:55.44ID:???
ruby のバージョンは?
あと、そのrubyってどうやって入れた?もしくは元から入ってたやつ?
07177042011/10/01(土) 20:16:43.45ID:???
「Ruby on Rails 3.1 を Mac OS X にインストールする手順をかなり丁寧に説明してみました - Rails 雑感 - Ruby on Rails with OIAX」
http://www.oiax.jp/rails/zakkan/rails_3_1_installation_on_macosx.html

railsの環境は上の記事を参考にして整えました。
当方の環境がOSX v10.7.1 Lionでしたので、"Rubyを更新"というステップは飛ばし、元から入っていたバージョンを使っています。

一応コマンドもやってみました。
$ ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
0718nobodyさん2011/10/01(土) 20:52:12.94ID:ENlvmGfR
rubyのバージョンの問題ではなさそう。
bcrypt-ruby (暗号化に関するgem)の、
deviseが期待するバージョンでは条件を満たせないと言っている。

Rails 3.1 は ActiveModel の特定のバージョン (=3.1.0) のみを使う。
ActiveModel 3.1.0 は bcryt-ruby の特定のバージョン( ~> 3.0.0) を必要とする。

で、あなたの入れようとしたdevise は ~> 2.1.2 という条件の bcryp-ruby を
使うといっているわけだ。 ~> ってのは、ドットで区切った上位の数値が同じで
あれば、下の方のバージョンだけはより大きなものでもいい、という指定で、
残念ながら 3.x では ~> 2.1.2 という条件を満たせない(3は2より大きいが最上
位が違うのは受け入れられないので)

Rails 3.1.1 (rc2) は bcrypt-ruby を必須gemから外しているからなんとか
なるかもしれないけど… 勉強に rc ってのもな…
0719nobodyさん2011/10/01(土) 20:54:26.04ID:ENlvmGfR
最新のdevise は bcrypt-ruby ~> 3.0.0 になってるのね
https://github.com/plataformatec/devise/blob/master/devise.gemspec
0720nobodyさん2011/10/01(土) 21:01:28.61ID:???
Gemfileのバージョンの部分削ってから、bundle installした方がいい。
その記事と、もしかしたら挙動が違うかも知れんが。

あと今後の事を考えると、rubyはデフォルトのじゃなくて rvmで入れた方が良いかも。
0721nobodyさん2011/10/01(土) 21:03:44.28ID:???
ruby は1.9.2以上で
0722nobodyさん2011/10/01(土) 21:05:49.15ID:ENlvmGfR
ところで、Lion付属のRubyは日本人にとって非常に残念なバグがあるので、
その点でも、新しいの入れたほうがいいな。

$ /usr/bin/ruby -vKu -e 'p "あいうえお"'
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
"あいうえ¥343¥201¥212"

p250で直ってるところが残念すぐる。
0723nobodyさん2011/10/01(土) 21:22:06.54ID:???
-Ku って使った事ないから気がつかなかった。
日本語はpじゃなくてputsしてるし。
07247042011/10/01(土) 21:44:13.35ID:???
>>718-719
詳しくありがとうございます!
つまり、Railsを最新のRC版に更新したとしても、
Rubyじゃなくてbcrypt-rubyのバージョンをv3.0.0以下に下げなくてはいけないという事なんですね。。

>721
>>ruby は1.9.2以上で
やっぱ新しくすべきですか。
ちなみにv1.9.2とv1.9.3(RC1)のどちらがおすすめですか?
07257042011/10/01(土) 21:44:28.65ID:???
>>722
バグ!!なるほど・・・よく分からないけど

## test.rb ##
arr = Hash.new
arr["No-001"] = "春"; arr["No-002"] = "夏"; arr["No-003"] = "秋"; arr["No-004"] = "冬"
p(arr)
for n in arr; print("KEY:", n[0], " --> VALUE:", n[1], "\n"); end
## /test.rb ##

を実行すると、

$ ruby test.rb
{"No-001"=>"\346\230\245", "No-002"=>"\345\244\217", "No-003"=>"\347\247\213", "No-004"=>"\345\206\254"}
KEY:No-001 --> VALUE:春
KEY:No-002 --> VALUE:夏
KEY:No-003 --> VALUE:秋
KEY:No-004 --> VALUE:冬

って感じに、p(arr)の出力が数字になるのもRubyのバージョンの問題なんですかね?
07267042011/10/01(土) 21:45:08.63ID:???
>>720
Gemfileのバージョンの部分を削ったらとりあえずエラー出ずに通りました!!
$ bundle install
Fetching source index for http://rubygems.org/
Enter your password to install the bundled RubyGems to your system:
Using rake (0.9.2)
Using multi_json (1.0.3)
Using activesupport (3.1.0)
Using bcrypt-ruby (3.0.1)
Using builder (3.0.0)
Using i18n (0.6.0)
Using activemodel (3.1.0)
Using erubis (2.7.0)
Using rack (1.3.3)
Using rack-cache (1.0.3)
Using rack-mount (0.8.3)
Using rack-test (0.6.1)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.0.0)
Using actionpack (3.1.0)
Using mime-types (1.16)
07277042011/10/01(土) 21:47:11.49ID:???
Using polyglot (0.3.2)
Using treetop (1.4.10)
Using mail (2.3.0)
Using actionmailer (3.1.0)
Using arel (2.2.1)
Using tzinfo (0.3.30)
Using activerecord (3.1.0)
Using activeresource (3.1.0)
Using bundler (1.0.20)
Using coffee-script-source (1.1.2)
Using execjs (1.2.9)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.2)
Using rdoc (3.9.4)
Using thor (0.14.6)
Using railties (3.1.0)
Using coffee-rails (3.1.1)
Installing orm_adapter (0.0.5)
Installing warden (1.0.5)
Installing devise (1.4.7)
Using jquery-rails (1.0.14)
Using json (1.6.1)
Using rails (3.1.0)
Using sass (3.1.7)
Using sass-rails (3.1.3)
Using sqlite3 (1.3.4)
Using sqlite3-ruby (1.3.3)
Using uglifier (1.0.3)
Using will_paginate (3.0.pre2)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
07287042011/10/01(土) 21:48:50.08ID:???
>>720
てかrvmというものがあるんですね!

ググってみたら http://gihyo.jp/dev/serial/01/ruby/0039 というページが出てきたんですけど、
よくわからないんですがこの通りにやればいいですか?
0729nobodyさん2011/10/01(土) 22:07:58.87ID:???
>>728
まあ、大体そんな感じ。
Lionでは、その記事のreadlineの部分は無視していい。
homebrew使ってるなら
$ brew install readline
しといても害は無い。どうせ他に何か入れた時に入るから。

ruby のバージョンは 1.9.2 と 1.9.3 と迷いどころだけど、1.9.3-head (もしくは1.9.2-head)としとけば良いような気もする。

あと毎回 rvm use するのが面倒なら、.rvmrc ファイルを作る。
前に挙げてた記事の通りやっているのだと、workディレクトリ作ってその下で作業員してるかも知れない。
その場合、
$ cd work
$ echo '1.9.3-head' > .rvmrc
$ cd ..
$ cd work
するとなんか聞かれるから、yと答えて。

そうするとworkにcd すれば自動で
1.9.3-head使うようになるから。
0730nobodyさん2011/10/01(土) 22:28:23.84ID:???
誰かactive-scaffold使ってる人いませんか?
0731nobodyさん2011/10/01(土) 22:34:49.27ID:???
>>728
あ、ごめん。
$ echo 'rvm 1.9.3-head' > .rvmrc
だった。

ちなみに、安定版は1.9.2だから、1.9.2の方が初心者は良いかも。

で、
$ which ruby
したら分かるけど、使ってるrubyが変わってるから、もう一度 bundle install して
0732nobodyさん2011/10/01(土) 22:48:56.59ID:???
>>730
それ使ってないんで分からんが、
ググったらすぐ日本語の記事出てきたけど…。

0733nobodyさん2011/10/01(土) 23:21:42.09ID:???
>>732
rails3.1で使ってる人はいないと思う
0734nobodyさん2011/10/01(土) 23:23:14.79ID:???
俺もdeviseのことで質問。

特定ユーザーをログイン・パスワードの再発行禁止にしたいんだけど
どうすればいいのかな?
stack overflow見たらbannedフィールドを追加してごにょごにょって書いてあったんだけど出来なかった。
0735nobodyさん2011/10/01(土) 23:23:47.31ID:???
>>733
なんか、そのフォークされたやつ見に行ったら、3.1対応してたけど
07367042011/10/01(土) 23:26:05.35ID:???
>>729 >>731

あ な た が 神 で す か

$gem install bundlerしてから$bundle installしたらいけました!!
自動ってすごいっすね・・・しかもなぜか分からないけどrails serverの起動速度が格段に上がった気がします
本当にありがとうございました。
0737nobodyさん2011/10/01(土) 23:42:27.06ID:???
>>736
他には、毎回railsって打つのめんどいから
.bashrcかなんかで、 r にrails をエイリアスさせる。

すると、
$ r s
でサーバ起動する

$ r c
がコンソール

$ r g
でgenerate

この辺が大体みんなやってる基本
0738nobodyさん2011/10/01(土) 23:45:34.34ID:ENlvmGfR
1.9.3はライブラリロード周辺に手が入っていて、railsコマンドみたいな
起動時に大量にrequireするやつには覿面に効いてるはず。
0739nobodyさん2011/10/02(日) 01:18:11.76ID:???
>>734
devise使わない派だからアレだけど、
Stack Overflow読むくらいなら何とかできそうだが。

user.banned = true
は当然してるとして、
あとは解法に書いてあるメソッドがまだあるのか、呼ばれてるのかgemの中grepかけるて読みに行く。
などなど。

devise詳しい人の登場を待つか…
0740nobodyさん2011/10/02(日) 01:44:28.20ID:???
>>739
他に何かライブラリ使ってるのか、それとも自分で書くの?
0741nobodyさん2011/10/02(日) 01:56:03.31ID:???
>>740
使う時はwardenくらいは使う。
後は別に全部自分で書けるし。
要件によって登録フロー全然違うから、自前の方が好き勝手できる。

devise使っても良いんだが、何かあった時に読むのがツライ。

自分とこのサービスなら(とかdeviseに合わせて要件変えられるなら)別にdeviseで良いと思うよ。
0742nobodyさん2011/10/02(日) 11:11:00.18ID:???
>>739
trueって1を入れるんじゃないの?
bannedフィールドをintegerにして
1をいれて試してみたんだけど
0743nobodyさん2011/10/02(日) 12:09:15.08ID:SXDeI2UB
>>739
このようにしてみたときuser.bannedが空だったら問題なくサインインされるけど
trueとか何か入っていたときは
「ページの自動転送設定が正しくありません。このアドレスへのリクエストに対するサーバの自動転送設定がループしています。」
と出てしまい、まともにサイト内リダイレクトされない。
ちなみにサイト内じゃなく redirect_to 'http://yahoo.co.jp'としてもリダイレクトされない。
どこで引っかかってるんだろう??

class TodosController < ApplicationController
# GET /todos
# GET /todos.json

before_filter :authenticate_user!
before_filter :deny_banned

protected
def deny_banned
if current_user.banned?
redirect_to :controller => 'welcome', :action => 'index', :notice => "You are banned from this site."
end
end
...ここから下がdef indexなど
0744nobodyさん2011/10/02(日) 13:25:17.72ID:???

スリムになったSearchlogic v2をいじってみた - MothProgのうしろがわ
http://d.hatena.ne.jp/mothprog/20090819/1250692210

テッチャン☆ぶろぐ: [Rails]searchlogic v2でテーブルのソート的なもの。
http://shasou.blogspot.com/2010/02/railssearchlogic-v2.html

今さらだけど、Rails 2.1のNamed Scopeの簡単な紹介。 - このブログは証明できない。
http://d.hatena.ne.jp/shunsuk/20100524/1274703781

named_scopeについてくわしく - moroの日記
http://d.hatena.ne.jp/moro/20080630/1214800838
0745nobodyさん2011/10/02(日) 13:55:36.24ID:???
>>743
何も読まずに答えると、書いてあるまんま。
リダイレクトがループしてる。

一度認証してログイン成功してから、ban調べてる。
banされた時のリダイレクト先は、認証してたらどこかにリダイレクトする事にしてるんちゃう?
で、飛ばされた先で、もう一度banでリダイレクト…が続いてる。

だから、ban判定したらセッション切ってログアウトさせて。
そういうメソッドがあるはず。

外に飛ばしてもダメってのは分からんが
0746nobodyさん2011/10/02(日) 14:03:14.47ID:???
>>743
もしくは、ban先でも認証求めてるとか。
で、認証・ban・認証・banのループ。
その例示コードが実際と違うと思うけど。
0747nobodyさん2011/10/02(日) 14:27:04.01ID:???
>>746
ちなみにルーティングはこうしています

Sample::Application.routes.draw do

root :to => "welcome#index" devise_for :users, :controllers => { :registrations => "registrations" }

get 'todos', :to => 'todos#index', :as => :user_root resources :todos

devise_for :users do get 'logout' => 'devise/sessions#destroy' end

end

0748nobodyさん2011/10/02(日) 14:41:41.03ID:???
(redirect_to('http://yahoo.co.jp') and return)
0749nobodyさん2011/10/02(日) 16:05:20.54ID:???
同じような感じで作ってみたけど、ループしなかった。
なんか出されてる情報と、実際のコードが違うんだと思う。

とりあえず、
if current_user.banned?
の次に
sign_out
って入れてみ
0750nobodyさん2011/10/02(日) 16:51:36.08ID:SXDeI2UB
>>749
ありがとう!それで確かに Usersテーブルのbannedフィールド(varchar)に
trueが入っているときはログインできずにroot_pathにリダイレクトされるようになりました。

しかし、bannedフィールドを手動で空にしてログインしたときは下記のエラーが出ます。
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
0751nobodyさん2011/10/02(日) 16:57:43.12ID:???
>>750
migrationの書き方が悪い。
t.boolean :banned, :default => false
にして。
0752nobodyさん2011/10/02(日) 17:08:33.19ID:SXDeI2UB
>>751
これのどの行にそれを入れて rake db:migrate を実行すればいいのでしょうか?

class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable

# t.encryptable
t.confirmable
# t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
# t.token_authenticatable


t.timestamps
end

add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
add_index :users, :confirmation_token, :unique => true

# add_index :users, :unlock_token, :unique => true
# add_index :users, :authentication_token, :unique => true
end

def self.down
drop_table :users
end
end
0753nobodyさん2011/10/02(日) 17:08:52.52ID:???
昨日から答えすぎた。しばしROMる
0754nobodyさん2011/10/02(日) 17:12:45.28ID:???
>>752
カラム追加はきちんとmigrationファイル使って。
myadminとかで追加はダメ。
self.up の中のどこかに書いとけ。
0755nobodyさん2011/10/02(日) 17:24:31.65ID:SXDeI2UB
>>754

6行目に入れて rake db:migrateしても
20行目に入れて rake db:migrateしても
bannedフィールドが追加されないんです>_<
0756nobodyさん2011/10/02(日) 17:36:36.32ID:???
>>755
rake db:reset
0757nobodyさん2011/10/02(日) 17:45:50.02ID:SXDeI2UB
>>756
ありがとう。無事フィールドが追加されました。

>>751
やっぱり>>750のエラーが出ますね。。。
bannedフィールドにはしっかりと0が入っているのですが
0758nobodyさん2011/10/02(日) 18:44:39.11ID:0eXzMNTG
ただの整数カラムだと0はRuby的に真なので、論理型カラムを持たないDB
の場合は、幅1の整数は論理型カラムと見なすみたいなことをARアダプタの
レベルでやってたっけな。
0759nobodyさん2011/10/02(日) 19:03:38.28ID:???
Ruby では false または nil だけが偽で、それ以外は 0 や空文字列も含め全て真です。
0760nobodyさん2011/10/02(日) 20:11:53.47ID:???
>>759
これはそういう話じゃないから。

db的には1/0であっても、t.booleanと書いてあれば、ActiveRecordは自動的にtrue/falseに変換してくれる。nullならnilになる。

で、 >>750 のエラーはnilにメソッド送ったりすると出る。
これが出るのは、いろんな理由が考えられる。

カラム追加してからサーバを再起動してないとか、
ブラウザ立ち上げっぱで、戻るボタンで戻って動かそうとしてるとか
そういう初歩的なミスだと思う。


0761>>7522011/10/02(日) 21:03:31.22ID:???
bannedに手動で1を入れると期待しているとおりログインがブロックされます。

手動で0を入れてログインしようとすると>>750のエラーが出ます
nilやnullとして判定されずtinyint文字列一文字として認識されているようです。
0762>>7522011/10/02(日) 21:10:37.55ID:???
ちなみに0を入力するのではなく
nullにしたときもログインできないです
0763nobodyさん2011/10/02(日) 22:03:51.27ID:???
手動でっての、気になるからやり方さらして。

mysqlでやってみたけど再現しなかった。
mysqlのコンソールからupdateかけたり、rails のコンソールからモデル経由でもやってみたけど、再現せず。
0764nobodyさん2011/10/02(日) 22:11:06.46ID:???
なんか別に違う事やってるんじょないかな
0765nobodyさん2011/10/02(日) 22:23:04.71ID:???
ログイン成功後のページでいらん事してるとかだったり…
0766nobodyさん2011/10/02(日) 22:58:51.65ID:???
分かってしまった…。
>>743
これだ。

protected が先に書いてあるから、その下全部 protectedになって、indexとかが見えなくなってる。

で、多分scaffoldで作ったんだろうから todos#index で、モデルのfindも見えなくなって、でもviewはあるから表示しようとする。
@todos.each が viewにあるから、nil.each でエラーになる。
0767>>7522011/10/02(日) 22:58:57.16ID:???
>>763
phpMyAdmin上でbannedフィールドのところのnullにチェックを入れてSaveしてるだけです。

しかし、nullとして判定されていない模様。
ログイン成功後は>>743のtodosコントローラーのindexを開いています。
0768nobodyさん2011/10/02(日) 23:02:25.97ID:???
>>767
null入れるなよ…。
1/0 入れろ。
null入れたら、banned? 呼んだ時にエラーになるのは当たり前。
0769nobodyさん2011/10/02(日) 23:27:59.83ID:???
>>767
>>767 を読め。
これで分からなければ devise 以前にrubyが分かってないから勉強やり直して。
public, pritected, private 辺りを。
0770nobodyさん2011/10/02(日) 23:28:20.62ID:???
>>767
>>766 だった
0771>>7522011/10/02(日) 23:58:01.20ID:???
>>766
どうすれば対処できますか?
0772>>7522011/10/03(月) 00:10:42.59ID:???
protectedを外したら、すんなりとうまく行きました!ありがとう!
0773nobodyさん2011/10/03(月) 00:20:22.90ID:???
>>772
ちげーよ!
0774nobodyさん2011/10/03(月) 00:47:30.11ID:???
<p class=ほにゃらら
にした場合は、noticeがブランクでも
しょっぱなから装飾しているバックの枠も表示されます。

どのようにすれば
noticeがブランクの場合は何(枠)も表示されない。
そうでなければ装飾した枠でnoticeを囲んでメッセージを表示

ってのは出来るようになりますか?
0775nobodyさん2011/10/03(月) 01:56:43.15ID:???
それはもうrails関係ない話のような・・・
とりあえず、style="display:none;"にしておいて、ページ読み込み時にnoticeに
値が入ってたら、display:noneを消すとか。
もちろん、javascriptで。
0776nobodyさん2011/10/03(月) 02:16:55.56ID:???
>>775
erb側はどういうふうに?
0777nobodyさん2011/10/03(月) 02:23:11.45ID:???
>>776
自分の場合は、jqueryでやることが多いので、
例えばこんな感じ。
きれいな方法じゃないかもしれないが。

<p class="notice" style="display:none;">
<%= flash[:notice] %>
</p>

<script type="text/javascript">
$(function(){
<% if flash[:notice] %>
$('.notice').show();
<% end %>
});
</script>
0778nobodyさん2011/10/03(月) 03:09:05.93ID:???
>>777
そもそもflashはどこで使ってる?
各コンテンツの中?
それともページ全体一括して最上部に一行まとめて取って
noticeとかのメッセージ表示してる?
07797772011/10/03(月) 03:13:39.64ID:???
実はflashは使ってない。
>>774がnoticeって書いてたから、flash[:notice]の事かな?と思ったので
例に書いてみた。

でも似たような事する場合は、各コンテンツの中に書いてる。
0780nobodyさん2011/10/03(月) 06:42:06.49ID:???
<% if flash[:notice].present? %>
<p class="notice" style="display:none;"><%= flash[:notice] %></p>
<% end %>
0781nobodyさん2011/10/03(月) 07:20:44.46ID:???
>>780
自分ももしflash使うならこんな感じだけど、
if で囲ったら、display:none はいらないかと。
あと、この場合なら present? も使わない。
0782nobodyさん2011/10/03(月) 07:41:58.02ID:???
hirb script/console時にActiveRecordの結果を表形式で出力してくれる
http://d.hatena.ne.jp/rochefort/20100915/p1

hirbでActiveRecordの検索結果を見やすく表示する方法
http://memo.yomukaku.net/entries/10-hirbでActiveRecordの検索結果を見やすく表示する方法

awesome_print: A New Pretty Printer for your Ruby Objects
http://www.rubyinside.com/awesome_print-a-new-pretty-printer-for-your-ruby-objects-3208.html

MOONGIFT: ? WebベースのRailsコンソール「Kawaii」:オープンソースを毎日紹介
http://www.moongift.jp/2008/08/kawaii/
0783nobodyさん2011/10/03(月) 08:08:40.54ID:???
ActiveRecordで実行されるSQLをscript/consoleで確認するには - Memorandum
http://www.pistolfly.jp/weblog/2010/01/activerecordsqlscriptconsole.html

ruby script/console
http://www.cacanet.org/?p=256

utility_beltでwirble以上にirbを拡張する
http://doruby.kbmj.com/Kuromatu_logs/20090227/utility_belt_wirble_irb_

Ruby On Rails ピチカート街道 - オブジェクトのメソッドの一覧 -
http://rubist.blog77.fc2.com/blog-entry-86.html

IRB それはRubyistの魔法のランプ - hp12c
http://d.hatena.ne.jp/keyesberry/20101116/p1
0784nobodyさん2011/10/03(月) 08:11:41.24ID:???
[Rails] query-reviewerでRailsアプリのボトルネックを見つける
http://d.hatena.ne.jp/tkng/20080811/1218442298

SpecialWarningというプラグイン
http://d.hatena.ne.jp/authorNari/20090205/1233840189

N+1問題などを監視してパフォーマンスを改善するRailsプラグインBullet
http://blog.digital-squad.net/article/149685338.html

複合キー
compositekeys ActiveRecord Composite Primary Keys
http://compositekeys.rubyforge.org/

Martin Fowler's Bliki in Japanese - エンタープライズRails
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?EnterpriseRails
0785nobodyさん2011/10/03(月) 08:21:14.77ID:???
Ruby on Railsのパフォーマンス向上に関する10のtips
http://blog.tkmr.org/tatsuya/show/268-ruby-on-rails-10-tips

ごくごく基本的な Ruby on Rails のパフォーマンスチューニング
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071114
:conditions オプションでキーに使われるようなカラムにはインデックスを作成すべし

:selectで取得するカラムを絞ったらパフォーマンスが倍に
http://brass.to/blog/active_record_select_option.html

Rails で MySQL を使うときの注意点 | METAREAL
http://www.metareal.org/2007/07/24/notes-on-rubyonrails-with-mysql/
0786nobodyさん2011/10/03(月) 09:08:52.19ID:???
SQLite3にmigrationでadd_indexしても速くならない - 職業的思考内容
http://d.hatena.ne.jp/yyamasak/20090317/1237270461

jijixi's diary - 車検費用 , ごくごく基本的な Ruby on Rails のパフォーマンスチューニング
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071114

[Rails] ActiveRecordでの検索時にインデックスの使用を強制する(MySQL用) - 射撃しつつ前転
http://d.hatena.ne.jp/tkng/20080812/1218532322

http://d.hatena.ne.jp/kurusaki/20081019/1224358283
0787nobodyさん2011/10/03(月) 09:23:48.05ID:???
>>777
普通flashってコントローラーからメッセージだけを送るじゃないですか?

メッセージを送るときに
同時にスタイル(styleを変数にしとく?)も指定する方法あったら教えてください

0788nobodyさん2011/10/03(月) 09:33:44.96ID:???
>>787
お前はコントローラでデザインの事を気にしたいのか?
どう考えても筋悪すぎるだろ。

あと >>777 は、やり過ぎ。jquery で視覚効果付けるためにああやってるだけ。
0789nobodyさん2011/10/03(月) 10:11:45.84ID:???
スタイルはスタイルシートで書いてください。以上
0790nobodyさん2011/10/03(月) 12:04:43.77ID:???
>>788
例えばflashのnoticeでエラーメッセージを出すときは背景は赤枠の装飾

成功のメッセージ表示の時は緑といった具合に条件によって異なるスタイル属性を持たせたい場合どうします?
0791nobodyさん2011/10/03(月) 12:27:19.94ID:???
Rails 2.0 での add_column / remove_column の自動生成 - minorio のプログラミング・メモ
http://d.hatena.ne.jp/minorio/20080427/1209280851

Ruby on Rails 2.0 その後の発見 - yuum3のお仕事日記
http://d.hatena.ne.jp/yuum3/20080107/1199720092

Ruby on Rails : migration 機能リファレンス - WebOS Goodies
http://webos-goodies.jp/archives/50741819.html

だらだら備忘録: Rails Migration
http://blog.memo.vg/2007/06/rails-migration.html
0792nobodyさん2011/10/03(月) 12:57:43.90ID:???
devise使ったとして
ユーザーがメアドを変えたいときはどうすればいいですか?

メアドがユニークなキーになってるみたいなので。

普通にUsersテーブル用のフォームを作って、そこでパスワードが一致したらレコードを上書きするようにすればok?

例えば少し出来るユーザーがフォームをまんま保存して
非表示になってるUsersテーブル内のフィールドを手動でhtmlに追加して、
そこから保存ボタンでフォーム内容更新のアクセスがサイトに来たときは
非表示にしてたところのフィールド内容まで更新されてしまわない?
0793nobodyさん2011/10/03(月) 13:13:58.94ID:???
お前全部聞くのかよ
0794nobodyさん2011/10/03(月) 13:25:26.15ID:???
ずっと前から聞きまくってるやつと一緒だろ。気づけよ
0795nobodyさん2011/10/03(月) 13:26:56.19ID:???
>>792
attr_accessible と attr_protected|WEBデザイン Tips
http://blog.digital-squad.net/article/106792109.html

attr_accessible と attr_protected - INOHILOG
http://d.hatena.ne.jp/InoHiro/20100812/1281600786



■ このスレッドは過去ログ倉庫に格納されています