【RoR】Ruby on Rails Part16
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/01/31(木) 08:07:31.27ID:GGHiBszvhttp://kohada.2ch.net/test/read.cgi/php/1341589839/
http://unkar.org/r/php/1341589839
■参考サイト
<英語>
本家: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://doc.ruby-lang.org/ja/1.9.3/doc/index.html
0685nobodyさん
2013/09/04(水) 22:45:54.82ID:???X-Forwarded-For とかがきちんと設定されてないとかもあるかもな。
0686nobodyさん
2013/09/04(水) 22:47:36.17ID:???直接見られるのが嫌なら、Rubyで暗号化した状態でJSON出力してJavaScript側で複合化すればいい。
まぁ、それでも少し詳しいユーザがJS側のソースを見れば解読できるけど、ベタ書きよりは良いかもね。
0687nobodyさん
2013/09/04(水) 23:24:04.50ID:0bOgciHMレスありがとうございます。
nginxの設定ではX-Forwarded-For 周りは下記のように設定しています。
ドメインソケットでの接続というのがどういうことなのかわからなかったですが
upstreamでunicornのソケットファイルを指定してリバースプロキシするように設定しました。
upstream backend {
server unix:/tmp/unicorn.sock;
}
server {
listen 80;
server_name localhost;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) { proxy_pass http://backend; }
}
}
0688nobodyさん
2013/09/05(木) 00:27:18.86ID:???>>686
分かりました。素直に外部ファイルにはくことにします。
・・・ですが、すいません、***.html.erbではなくて、外部jsにはくにはどうすればいいのでしょうか?
0689nobodyさん
2013/09/05(木) 06:25:29.21ID:???この辺ですね
https://github.com/rails/rails/blob/4-0-stable/actionpack/lib/action_view/helpers/asset_url_helper.rb
binding.pryでconfig.*の値を確認していくと早いかもしれない
>>688
同じアクションで振り分ける場合
respond_to do |format|
format.html
format.json{ render json: @hoge.to_json }
end
静的ファイルとして書き出す場合
filename = "himitsu/#{@user.id}.json"
open(filename, "w").write(@hoge.to_json)
しておいて、書き出したファイルをどっかのアクションからsend_fileする
0690nobodyさん
2013/09/05(木) 21:49:04.91ID:cRWHLmnXbinding.pryなんて便利な物あったんですね。
rails consoleでconfigの設定値は調べてたんですが、configの値は普通だったんで違うかと思ってましたが
helper内の挙動と合わせて見直してみます。ありがとうございます!
0691nobodyさん
2013/09/05(木) 22:23:50.09ID:K2FtSIKWhttp://www.slideshare.net/shunjikonishi/heroku-15670119
おいしいherokuの使い方
http://www.slideshare.net/oakbow/ss-25912016
0693nobodyさん
2013/09/06(金) 20:10:30.51ID:???これの通りにgemをカスタマイズして使っているのですが、
git add .
git commit
しても、カスタマイズしたgemがRailsのgitの中に含まれません。
gitの中に更にgitがあるのが問題なのだとは思いますがどうすれぱ、Railsのgitにカスタマイズしたgemを含められますか?
0694nobodyさん
2013/09/06(金) 22:27:13.77ID:???それかgitignoreでplugin/active_merchant/.gitを指定してみるとか。
0695nobodyさん
2013/09/07(土) 12:55:54.56ID:???0696nobodyさん
2013/09/07(土) 14:16:02.17ID:8JSXs8IY何進数か分かりませんが、規則は一般に共通なのでしょうか?
激しくスレチですみません。
0698nobodyさん
2013/09/07(土) 16:02:39.58ID:maLq26j/自力で62進(26+26+10)変換すればいいんじゃね?
0699nobodyさん
2013/09/07(土) 17:14:17.18ID:???universally unique identifier (UUID)
http://en.wikipedia.org/wiki/Universally_unique_identifier
0700nobodyさん
2013/09/07(土) 18:12:09.01ID:maLq26j/標準にも SecureRandom.uuid がある。
0701nobodyさん
2013/09/07(土) 19:18:48.91ID:s024vk7chttp://doc.ruby-lang.org/ja/2.0.0/method/SecureRandom/s/uuid.html
Module: SecureRandom (Ruby 1.9.3)
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/securerandom/rdoc/SecureRandom.html
0702nobodyさん
2013/09/08(日) 03:43:36.65ID:9R3fglsn感謝しております。
今具現化してるアイディアがうまくいけば、皆さんのように優秀な方と仕事がしたいです。
いや、単なる妄想ですが・・・
0703nobodyさん
2013/09/08(日) 11:25:39.46ID:???今まではvps借りて一からセコセコとMySQLやRubyを入れてます
サーバーの引っ越しとかを考えたときにアプリフォルダだけを持っていくだけでお引っ越し完了!みたいなことは無理でしょうか?
普通の共用レンタルサーバーはSSHには対応してないですよね。
Railsの場合は rake db:migrateなどSSHを使わないといけない部分がありますが
どうなんでしょうか?
0704nobodyさん
2013/09/08(日) 17:13:51.42ID:9R3fglsn(winscpでファイル操作をするために、winscp接続にはパスワード無しでroot権限を与えたのが原因なのか)
ご教授願えませんでしょうか?
rails server
=> Booting WEBrick
=> Rails 4.0.0 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/rack-1.5.2/lib/rack/server.rb:332:in `initialize': Permission denied - /home/USERNAME/APPLICATIONNAME/tmp/pids/server.pid (Errno::EACCES)
from /usr/local/rvm/gems/ruby-2.0.0-p247/gems/rack-1.5.2/lib/rack/server.rb:332:in `open'
from /usr/local/rvm/gems/ruby-2.0.0-p247/gems/rack-1.5.2/lib/rack/server.rb:332:in `write_pid'
from /usr/local/rvm/gems/ruby-2.0.0-p247/gems/rack-1.5.2/lib/rack/server.rb:254:in `start'
from /usr/local/rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/commands/server.rb:84:in `start'
from /usr/local/rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/commands.rb:78:in `block in <top (required)>'
from /usr/local/rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap'
from /usr/local/rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
0705nobodyさん
2013/09/08(日) 17:53:11.19ID:???んなことない
さくらなんかはかなり自由が効く
0707nobodyさん
2013/09/08(日) 18:30:36.49ID:9R3fglsnありがとうございます。
先ほどのはroot権限なしでrails serverと入力したものでした。すみません。
root権限ありでrails serverと入力すると、下記のようなものが出てきます。
先のwinscpの設定をいじくる前は、webrickは表示できていたので、そこに絡んでミスをしたのかなと・・・
基本が分かっていないため、下記への対処法ですら自ら思いつくことができません。
宜しくお願い致します。
Mysql2::Error (Access denied for user 'root'@'localhost' (using password: NO)):
mysql2 (0.3.13) lib/mysql2/client.rb:58:in `connect'
mysql2 (0.3.13) lib/mysql2/client.rb:58:in `initialize'
0708nobodyさん
2013/09/08(日) 19:19:35.11ID:lyU644NF0709nobodyさん
2013/09/08(日) 19:54:13.17ID:eymRfFPQerbに書いたjsはコンパイルされません。
ですのでここも難読化したいのですが・・・
皆さんならどうされますか?
0710nobodyさん
2013/09/08(日) 20:50:10.77ID:????type1=aaa&type2=bbb
を
http://example.com/aaa/bbb
といった形で処理したいのですがRailsではどうすれば良いのでしょうか?
0711nobodyさん
2013/09/08(日) 21:31:51.29ID:???もしくは
get "*types", to: "controller#action"
これでparams[:types]をアクションで処理する
0712nobodyさん
2013/09/08(日) 21:45:13.76ID:9R3fglsndatabase.ymlのpassword欄にパスワードを記入し解決したっぽいです。
まことにありがとうございました。
0715nobodyさん
2013/09/09(月) 00:51:38.92ID:???せいぜい改行がなくなるとか
そんなもんですよね?
0716nobodyさん
2013/09/09(月) 01:29:12.09ID:???0717nobodyさん
2013/09/09(月) 01:49:46.55ID:???可読性とは関係なくない?
元のhtmlソース開いて
javaacriptのurl特定して
それ開けばいいだけだよね?
0718nobodyさん
2013/09/09(月) 03:10:01.54ID:UOPspRhy国→主要行政単位(prefecture等)と選択させていく時、
どういう構成にするのが効率が良いのでしょうか?
ターゲットとなる国々の主要行政単位を別のテーブルに登録しておいて、ユーザーテーブルに関連付けるのが良いのでしょうか?
0719nobodyさん
2013/09/09(月) 03:32:07.99ID:UOPspRhy同じような質問がありました。
この対応で良さそうです。
http://stackoverflow.com/questions/14024281/how-can-i-show-only-the-prefecture-that-belongs-to-selected-country
ちなみに、オプションに表示される国名や県名などを多言語化する場合はどう扱ったらよいのでしょうか?
select_collection等の選択肢として用意している項目の多元化です。
国や行政単位に使うわけではないのですが。
0720nobodyさん
2013/09/09(月) 04:27:18.98ID:UOPspRhyhttp://d.hatena.ne.jp/akishin999/20120802/1343875095
バックエンドにデータベースを利用。
これは良いかもしれませんね。
これなら、YAMLをいちいち編集しなくても、もしかしたら協力ユーザーにデータベースを整理整頓してもらうこともできるかもしれない。
そろそろ会社で支障が出る時間帯だ。寝ます。
0721nobodyさん
2013/09/09(月) 08:49:11.20ID:???難読化じゃなくて軽量化を目的としてると思うけどこれで出来た
after_filter :uglify, only: :js_no_action
def uglify
response.body = Uglifier.compile(response.body)
end
0725nobodyさん
2013/09/09(月) 15:51:51.69ID:???別サーバーに移転しようとして
環境deployしてたわけよ
passengerや使用gemのバージョンが1つでも少し違うだけで動かないwwww
gemどころかpassengerやrubyのバージョンまでとは。。。
1.92だと動いて1.93だと動かない!
依存関係がシビアすぎて鬱になる
一度構築した環境はもう二度と再建できないと思って取り組んだ方がいいね
0726nobodyさん
2013/09/09(月) 17:37:58.07ID:???PHPでいろいろやるためには、実際にはさまざまなライブラリーをあらかじめインストールした上で、
PHPをそれに合わせてconfigureしなおさなければならない。
こうして作られたlibphp#.soは、どれも微妙に、しかしユーザーにとっては耐え難く異なる。
http://b.hatena.ne.jp/entry/blog.livedoor.jp/dankogai/archives/50835571.html
0727nobodyさん
2013/09/09(月) 19:58:42.11ID:UOPspRhy本当ですね^^;
http://itmemojp.blogspot.jp/2012/10/rails.html
ajax + jquery というのが正解のようですね。。。
ここに紹介されているもので、�@都道府県がユーザー個々の登録情報(千葉県、埼玉県等)でデフォルト選択(市町村も該当のもの)できたりすると良いのと、
�A選択肢が多言語化できれば良いのですが(例えば、東京、tokyo。さらに欲を言えばヒラガナ等もヒモ付られれば)。
御回答くださりありがとうございました。
0730nobodyさん
2013/09/09(月) 20:52:49.76ID:???after_filter :uglifyはいいとして、あとのオプションは only: :js_no_actionでいいのでしょうか?
0731nobodyさん
2013/09/09(月) 21:02:34.36ID:???usersテーブルにcountry_idやcity_idを追加したとして、
多言語化はここの(6)を参考に
http://morizyun.github.io/blog/i18n-english-rails-ruby-many-languages/
Country#name がlocaleに適切なカラム(name_jaやname_en)を返すようにする。
デフォルトの選択は
@countries = Country.all.map{ |country| [country.name, country.id] }
select_tag(:country, options_for_select(@countries, selected: @user.country.id))
こうなるんじゃないかな
options_for_selectに渡す@countriesのところはもっと綺麗に書けるかもしれない。
0732nobodyさん
2013/09/09(月) 21:50:15.35ID:???誰が投稿したか?のuser_idのカラムが存在します
もしuser制を実装せずに誰でも投稿できるようにするにはどうすればいいのでしょうか?
まずモデルでuser(そもそも存在しない)とcommentsを関連づけないのか?
それともuserモデルはダミーで作り
2ユーザー(adminとguest)のみ作っておいて関連づけるのか?
0733nobodyさん
2013/09/09(月) 21:50:47.16ID:???productionと同じ動作のはずだよ。つまり難読化されない。
どうしても難読化したいなら、jsmin、yui-compressor、sqwish、closure、あとsassのやつとか
コンプレッサーのライブラリがあるみたいなんで、中には難読化してくれるものもあるかもしれない。
only: :js_no_actionのところは通常のHTMLにもUglifier.compileすると
エラーになるからjsを返すアクションに限定してフィルタをかけてという意味
もし同じアクションで複数のフォーマットを返すことがあるなら
response.content_typeでjs以外の場合はcompileをスキップさせて。
0734nobodyさん
2013/09/09(月) 22:11:21.80ID:???すいません、難読化の定義が曖昧だったようですが
・コメントが削除される
・空白やスペースが極力削除される
・変数名が一文字になる
というのを難読化と呼びました
productionで.jsをコンパイルしたら、確かに上の3つは実施されておりますが、
hoge.html.erbに書いたjsに対してそれを行いたかったのです。
application_controller.rbに、uglifyメソッドを定義して、
目的のhtml.erbをレンダリングするcontrollerにafter_filter :uglify, only: :js_no_actionを書きましたが、
erbに書いたjavascriptには変化はありませんでした
ちなみに、only: :js_no_actionって、rubyの文法的には、:js_no_actionはシンボルであり何かの引数だと思いますが
only:はなんなのでしょうか?
0735nobodyさん
2013/09/09(月) 22:14:14.11ID:p6whV7Wionly: :js_no_action と :only => :js_no_action は等価。
0736nobodyさん
2013/09/09(月) 22:46:44.36ID:???>>721では変数全部じゃなくてfunctionの中の変数だけ短縮されるみたいだ。
productionでも同じ動作かは確認してない。
https://github.com/lautis/uglifier
ここにuglifierのオプションが書いてあるんだけど
function外の変数を短縮する方法が見つけられなかった
0737nobodyさん
2013/09/09(月) 23:24:23.12ID:???ありがとうございます。
>>736
ありがとうございました。
今のところfunctionの中でも短縮化化されてないようです。
後出しですいませんが、今回やりたいのは、hoge.html.erbの中でrender :partialしているfuga.html.erbでした。
それだと、hoge_controllerにafter_filter書くだけではダメなのでしょうか・・・
0738nobodyさん
2013/09/09(月) 23:57:44.96ID:???fuga.html.erbにjavascriptが書いてあるってこと?
もしそうなら、俺の書いた事は見当違いかも・・・
0739nobodyさん
2013/09/10(火) 00:52:16.17ID:PCxtq6wU仮眠終了しました(笑)
今から取り組みます。
この板は親切過ぎて、甘えてしまっていますが、どうか宜しくお願い致します。
0740nobodyさん
2013/09/10(火) 05:04:34.43ID:PCxtq6wU明日は、先ほどの例で、都道府県を選択したら、
市町村のメニューそのものが表示されるようにしてみたいと思います(最初は表示されていない)。
ありがとうございました。
0741nobodyさん
2013/09/10(火) 09:56:44.36ID:???もし、HTMLの中にjsがベタ書きしてあるのなら、
ヘルパーに追加
def ugly_javascript(&code)
javascript_tag(Uglifier.compile(capture(&code)))
end
ビュー
<%= ugly_javascript do %>
function nanika(hoge){
alert(hoge);
var fuga = "fuga";
alert(fuga);
}
var dame = "dame")
nanika(dame);
<% end %>
これでこう出力された
<script>
//<![CDATA[
function nanika(a){alert(a);var n="fuga";alert(n)}var dame="dame";nanika(dame);
//]]>
</script>
0743nobodyさん
2013/09/11(水) 19:42:09.90ID:K4ZJ810jのサイトさんの、
「 _todoufuken_select.html.erb 」は、
$("#jusho_shichoson_id").html (省略)・・・
<%= f.select(:shichoson_id, (省略)・・・
この2行で、この並びで問題ないのでしょうか?
(rails4では、find(:all)が使えないようなので、whereで対応しました。)
0744nobodyさん
2013/09/11(水) 19:51:08.09ID:???$("#jusho_shichoson_id").html... は
_todoufuken_select.html.erbじゃなくて、
todoufuken_select.html.erbの間違いだと思う。
つまり別ファイル。
0745nobodyさん
2013/09/11(水) 20:10:37.43ID:7odvwZmt独自フレームワークはやめよう
6. サーバ周りの人材をしっかり確保しよう
b.hatena.ne.jp/entry/blog.madoro.org/mn/84
0746あ
2013/09/11(水) 20:14:42.56ID:7odvwZmtほら、結構重厚なフレームワークとか賢いフレームワークとかって、使いこなすためには一定の学習量が必要じゃないですか? そのコストがほぼ無い。
moznion.hatenadiary.com/entry/2013/09/11/163554
0747nobodyさん
2013/09/11(水) 20:46:18.97ID:???$("#jusho_shichoson_id").html... は
todoufuken_select.js.erb に書くっぽい。
0748あ
2013/09/11(水) 20:47:42.52ID:7odvwZmtまた、独自であるが故に、そのフレームワーク等の経験者を採用することもできない。
新しく入った人は常に0からのスタートになる。
blog.madoro.org/mn/84
0749nobodyさん
2013/09/11(水) 22:10:13.17ID:K4ZJ810jいつも?ありがとうございます。
jsファイルのことですね!!やってみます。
使えるようになるまであと数日かかりそうな悪寒はしますが、やってみます。
素人にとって、find(:all)の廃止から既に大きなトラップでした^^;
0750あ
2013/09/12(木) 10:10:38.30ID:Jrvdbuq2サーバ立てるのなんてちょっとパソコンに詳しければ簡単にできるんでしょ?
ハードウェアの多重化なんて必要?
企業で使うとかじゃなく個人的に細々と立てたサーバが攻撃されることなんて滅多にないよね?
攻撃が来るって言ったって大した数じゃないんでしょ?
攻撃されたって大したことは起きないんでしょ?
b.hatena.ne.jp/entry/tmaeda.s45.xrea.com/20041101.html
0751nobodyさん
2013/09/12(木) 19:58:34.11ID:???対応する入力フォームのテキストボックスにそのデータをセットしたいのですが、
どのように書けば良いか分かりませんでしたので質問させてください。
params[session_name] = session[session_name] unless session[session_name].blank?
上記の記述でいけるかなと思いましたが、これではparamsにデータが入るだけで
入力フォームにデータをセットすることはできませんでした。
初歩的な質問で申し訳ありませんが、ご教示の程よろしくお願い致します。
0752nobodyさん
2013/09/12(木) 20:14:24.50ID:???以下は一例です。
@nanka.session_name = session[session_name]
form_for @nanka do |f|
f.text_field :session_name
0753751
2013/09/12(木) 20:28:31.44ID:???ありがとうございます。
ビューは、752さんが記述されているようにform_forで記述していたため、
@nanka.session_name = session[session_name]
または、
@nanka[session_name] = session[session_name]
にてセッションデータをフォームへセットすることができました。
迅速な回答をいただき、大変助かりました。ありがとうございましたm(_ _)m
0754nobodyさん
2013/09/12(木) 23:47:48.38ID:LD1hnGrgこんなんでもいいかもね。 動くかわかんないけど
0755nobodyさん
2013/09/13(金) 00:00:55.33ID:G88nyhWW実はこのサイトの作業をまだやっているのですが、色々エラーに悩まされています。
http://itmemojp.blogspot.jp/2012/10/rails.html
当方、Rails4を使っているのですが、下記のコードで何でエラーが出るのかよく分かりません。
助けてください。
<div class="field">
<%= f.label :country_code %><br />
<%= f.collection_select(:country_code, Country.where("name_ja not ?", nil), :id, :name_ja) %><br />
</div>
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL)' at line 1: SELECT `countries`.* FROM `countries` WHERE (name_ja not NULL)
0756nobodyさん
2013/09/13(金) 00:12:36.95ID:piGo/Q/60757nobodyさん
2013/09/13(金) 00:14:44.78ID:piGo/Q/6is がないんじゃね?
f.collection_select(:country_code, Country.where("name_ja is not ?", nil), :id, :name_ja)
0758nobodyさん
2013/09/13(金) 00:34:21.23ID:G88nyhWWありがとうございます。
このリファレンスサイト様の該当箇所を見ると、こう書かれていたのですが、rails4で変わってしまったのでしょうか??
http://railsdoc.com/references/where
>nilでないすべてのデータを取得
>Page.where("title not ?", nil)
># SELECT "pages".* FROM "pages" WHERE (title not NULL)
0759nobodyさん
2013/09/13(金) 01:01:50.13ID:iGb+EzAgSQL文の文法エラーだから、Railsのバージョン(3か4か)は関係ない。
0760nobodyさん
2013/09/13(金) 01:08:15.41ID:G88nyhWWありがとうございます。
<%= f.collection_select(:country_code, Country.where("name_ja not ?", nil), :id, :name_ja) %><br />
"name_ja not ?" を name_ja ? にすれば良いということでしょうか?
すみません、勉強不足です。
0761nobodyさん
2013/09/13(金) 03:12:20.81ID:G88nyhWW>>760については、『Couontry.where(name_ja IS NOT NULL)』としました。
Rails4では、書き方にやや変化もあるようです。
http://xxxcaqui.hatenablog.com/entry/2013/02/25/015146
?絡みは難しそうということが、なんとなく感じたので、今後勉強したいと思います。
親選択肢が選択されたら、それに沿った子選択肢のselect欄が"(非表示から)表示"されるようにするには、どういった感じでjQueryを使うのが良いのでしょうか??
明日はそこらへんを研究してみます。
ありがとうございました。
0763nobodyさん
2013/09/13(金) 18:38:29.94ID:G88nyhWWそうなんですね!!
ざっと復習する時に使うに留めます。
他のソースでも確認しながらにします。
0764nobodyさん
2013/09/13(金) 21:25:55.10ID:iGb+EzAg@railsdoc へ
0765nobodyさん
2013/09/14(土) 00:25:59.15ID:UYW4D9MLルート/hoge/edit (POST)
というサイト構成で
ルートにアクセスしてきても、hoge/indexに誘導したいんですが、
root :to => "hoge#index"
としたら、今度はhoge.html.erbの<form>に書いたpost先の"edit"が、
ルートからアクセスしたらルート/editになってしまいます。
どうすればいいのでしょうか?
0766nobodyさん
2013/09/14(土) 01:16:07.01ID:JzP2wFkZhoge.html.erbはroutesにどういう風アクセスするようにかいてるの?
form_forかform_tagかわからんけどソースはってみて
想像だけど
hoges_controller.rbがあって
def index; end
def edit; end
がそれぞれ定義されてるんだよね?
それぞれがレンダリングするviewは
def index: endがindex.html.erb
def edit: endがedit.html.erbだよね?
0767nobodyさん
2013/09/14(土) 01:17:05.89ID:JzP2wFkZ0768nobodyさん
2013/09/14(土) 23:30:54.97ID:???form_for を使うか、form_tag(action: "edit") とすると良いんじゃないかな。
それから、resourcesで定義されるeditはgetの編集フォームだから後で混乱しそう。
PATCH update、POST create を定義した方が良いと思います。
0769nobodyさん
2013/09/14(土) 23:59:40.02ID:???すいません、先ほどからソースを用意してherokuに挙げてここに貼ろうとしてましたが、
>>768の一言で解決しました。
<%= form_tag("edit", :class => 'hage') do %>
これを↓にしたら万事解決しました。
<%= form_tag({:action => :edit}, :class => 'hage') do %>
ありがとうございました。
次からはもっと説明がうまくできるように頑張ります。
0770nobodyさん
2013/09/15(日) 12:32:59.28ID:0/0Pk/FF上から順に日付けを入れていくのですが、日付が新しい順から入っているかエラーチェックしたいです。
field_forの前後の値を取得する方法が分かりません。
ご存知のかた教えてくれませんか。
0771nobodyさん
2013/09/15(日) 14:17:39.44ID:???というかJSでやるしかない
0773nobodyさん
2013/09/15(日) 23:25:55.38ID:tO4b1j0o各メーカーにシリーズは複数あります
class Maker < ActiveRecord::Base
has_many :series
attr_accessible :name, :uniqueness => true, :null => false
end
class Series < ActiveRecord::Base
belongs_to :maker
attr_accessible :name, :uniqueness => true, :null => false
attr_accessible :maker_id, :null => true
end
Viewでユーザーが特定のメーカーを選んで、そのメーカーの文字列が来ます(例:「キリン」「サントリー」)。
んで、DBから、そのメーカーと一致するシリーズを全て検索したいんですが
ActiveRecordでどう書くのでしょうか?
普通にSQL書けば
SELECT series.name
FROM series
INNER JOIN maker ON series.maker_id = maker.id
WHERE maker.name = @引数
なんですが、ActiveRecordだと Series.include(:maker)から先がよく分かりません
そもそも外部キーの設定が間違っているのかもしれませんが・・・
0775nobodyさん
2013/09/16(月) 00:23:05.70ID:???2. Maker.find_by_name(params[:name]).series
1は>>773に書いてあるSQLと同様のSQLを1回発行、2はmakerのあとにseriesを検索の2回。
上の方のレスにもあるけど、mysqlでは1だとorder("series.created_at")というふうに
where句と異なるテーブルを指定すると有効な(?)indexを参照できずデータ量によっては遅くなるみたい。
それから、attr_accessible じゃなくて、validatesじゃないでしょうか。
0776nobodyさん
2013/09/16(月) 14:41:32.48ID:W80yAF/Oentries = Entry.select('discount email').where(:user_type => 4)
のようにして、ある条件を満たすEntryの一覧を取得したいのですが、
emailカラムの重複を排除するためdiscountを使うと、entriesにはemail以外のカラムの値が入っていません。
emailの重複を排除した上で他のカラムのデータも取得するためにはどうすればいいでしょうか?
0778nobodyさん
2013/09/16(月) 15:29:56.10ID:???0780nobodyさん
2013/09/16(月) 16:02:11.10ID:dRVqKGC70781nobodyさん
2013/09/16(月) 16:07:20.75ID:???ありがとうございます。
ただ、*** NoMethodError Exception: undefined method `series' for #<ActiveRecord::Relation:0x4c1f610>と出ました・・・
>>775
ありがとうございます。
Rails4では、find_by_○○○は廃止されるらしいので、1を選びます。
:validatesは使ったことないのですが、どこのカラムに使うのでしょうか?
mass_assignmentで更新させたいカラムには、attr_accessibleをつける程度の認識だったのですが
0782nobodyさん
2013/09/16(月) 16:14:46.07ID:???あぁ、そうか
Maker.where(name: 'hoge').first.series
じゃないとだめだな
0783nobodyさん
2013/09/16(月) 16:31:13.21ID:???>>779で発行されるこれはSQL的に間違いということでしょうか?
SELECT `entriess`.* FROM `entriess` WHERE (created_at < '2013-08-16 07:19:29') GROUP BY email
SQLite3でも通るのは確認しました。
0784nobodyさん
2013/09/16(月) 17:05:27.47ID:dRVqKGC7標準SQLでは、GROUP BYを指定したときSELECTに書けるのは、
GROUP BYで指定したカラムもしくは集約関数のみに制限される。
だって、グループ化した中のどの行のカラムが代表に出てくるのか予測出来ないじゃん。
■ このスレッドは過去ログ倉庫に格納されています