はてなキーワード: indexとは
Visual Studio 2005しかインストールしてない場合、Python 2.5だとdistutilsが正しく動かないっぽいので、どうにかしたいYO!
distutilsでVisual Studioを使うときのコンパイル環境は、sysモジュールのversionプロパティを参照して環境を選択をしているようです。Pythonのインタプリタを起動して、以下のような命令を実行してみると、sys.versionプロパティが確認できます。
import sys;print sys.version
Python 2.5.2だと、以下のようになっています。Visual Studio 2003の環境が使われるようです。
2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]
Python 2.6a1だと、以下のようになっています。Visual Studio 2008の環境が使われるようです。
2.6a1 (r26a1:61155, Mar 1 2008, 12:11:56) [MSC v.1500 32 bit (Intel)]
以上から察するに、Python 2.5.2とPython 2.6のどちらでも、Visual Studio 2005の環境が選択されることはないっぽいです。うーん、困った!
「Python 2.6とVisual Studio 2008をインストールしよう!」というのを真っ先に思いつきましたが、あんまり環境を変えたくないんだよなー。というわけで、環境の変更を最低限に抑えてどうにかしてみました。簡単に言うと、distutilsだけの置き換えをしました。
Python 2.6の公式ダウンロードページから、Windows版のインストーラーをダウンロードして、適当な場所にインストールしてください。
"Python-2.5.2/Lib/distutils"を別の場所に移動し、"Python-2.6a1/Lib/distutils"を"Python-2.5.2/Lib"以下にコピーしてください。以降はPython 2.6は必要ないので、アンインストールして構いません。
上記の2点の変更を行います。distutilsディレクトリに、以下のパッチをあててください。
Index: msvccompiler.py =================================================================== --- msvccompiler.py +++ msvccompiler.py @@ -170,6 +170,7 @@ if majorVersion == 6: minorVersion = 0 if majorVersion >= 6: + return 8 return majorVersion + minorVersion # else we don't know what version of the compiler this is return None Index: msvc9compiler.py =================================================================== --- msvc9compiler.py +++ msvc9compiler.py @@ -128,7 +128,7 @@ "sdkinstallrootv2.0") else: raise KeyError("sdkinstallrootv2.0") - except KeyError as exc: # + except KeyError, exc: # raise DistutilsPlatformError( """Python was built with Visual Studio 2008; extensions must be built with a compiler than can generate compatible binaries. @@ -172,6 +172,7 @@ if majorVersion == 6: minorVersion = 0 if majorVersion >= 6: + return 8 return majorVersion + minorVersion # else we don't know what version of the compiler this is return None @@ -455,7 +456,7 @@ try: self.spawn([self.rc] + pp_opts + [output_opt] + [input_opt]) - except DistutilsExecError as msg: + except DistutilsExecError, msg: raise CompileError(msg) continue elif ext in self._mc_extensions: @@ -482,7 +483,7 @@ self.spawn([self.rc] + ["/fo" + obj] + [rc_file]) - except DistutilsExecError as msg: + except DistutilsExecError, msg: raise CompileError(msg) continue else: @@ -495,7 +496,7 @@ self.spawn([self.cc] + compile_opts + pp_opts + [input_opt, output_opt] + extra_postargs) - except DistutilsExecError as msg: + except DistutilsExecError, msg: raise CompileError(msg) return objects @@ -520,7 +521,7 @@ pass # XXX what goes here? try: self.spawn([self.lib] + lib_args) - except DistutilsExecError as msg: + except DistutilsExecError, msg: raise LibError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) @@ -598,7 +599,7 @@ self.mkpath(os.path.dirname(output_filename)) try: self.spawn([self.linker] + ld_args) - except DistutilsExecError as msg: + except DistutilsExecError, msg: raise LinkError(msg) else:
python.exeと同じディレクトリに、以下のXMLを"python.exe.manifest"として保存してください。
<?xml version='1.0' encoding='UTF-8' standalone='yes'?> <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> <dependency> <dependentAssembly> <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> </dependentAssembly> </dependency> </assembly>
これで終わりです。
An eye for an eye, and a tooth for a tooth. 英語のことわざINDEX
目には目を歯には歯を
200万とかで一時的に順位上げても契約終わったらリンクも切れて落ちちゃうんだから
意味ない出費だと思ったよ
http://anond.hatelabo.jp/20071030034313 の二番煎じ
あまりのアホさに、作ってて気が狂いかけた
方針
using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.IO; using System.Reflection; using Microsoft.CSharp; delegate void ConvertTemplateDelegate(TextWriter tw, Dictionary<object, object> args); static class TemplateGenerator { public static ConvertTemplateDelegate Generate(string code) { CompilerParameters param = new CompilerParameters(); param.GenerateInMemory = true; param.ReferencedAssemblies.Add("System.Web.dll"); CompilerResults rs = new CSharpCodeProvider().CompileAssemblyFromSource(param, ParseTemplate(code)); if (0 < rs.Errors.Count) { StringWriter sw = new StringWriter(); sw.WriteLine("Compile Error..."); foreach (CompilerError err in rs.Errors) sw.WriteLine(err.ToString()); throw new Exception(sw.ToString()); } return (ConvertTemplateDelegate) Delegate.CreateDelegate(typeof(ConvertTemplateDelegate), rs.CompiledAssembly.GetType("Template", true).GetMethod("Convert")); } private static string ParseTemplate(string code) { using (StringWriter sw = new StringWriter()) { sw.WriteLine("using System; using System.Collections.Generic; using System.IO; using System.Web;"); sw.WriteLine("public static class Template {"); sw.WriteLine("public static void Convert(TextWriter tw, Dictionary<object, object> args) {"); int index = 0; while (0 <= index && index < code.Length) { int i = code.IndexOf("<%", index); sw.WriteLine("tw.Write(\"{0}\");", EscapeString(i < 0 ? code.Substring(index) : code.Substring(index, i - index))); if (0 <= i) { i += 2; int i2 = code.IndexOf("%>", i); if (0 <= i2) { string cc = code.Substring(i, i2 - i); if (cc.StartsWith("=")) sw.WriteLine("tw.Write(HttpUtility.HtmlEncode(\"\"+({0})));", cc.Substring(1)); else sw.WriteLine(cc); i = i2 + 2; } } index = i; } sw.WriteLine("}}"); return sw.ToString(); } } private static string EscapeString(string code) { return code.Replace("\\", "\\e").Replace("\"", "\\\"").Replace("\t", "\\t").Replace("\n", "\\n").Replace("\r", "\\r").Replace("\\e", "\\\\"); } }
サンプル C# コード。ためしにテンプレートから Xml 生成して、標準出力してみる。
class Program { static void Main(string[] args) { ConvertTemplateDelegate func = TemplateGenerator.Generate(TemplateEngine.Resource1.template); using (StringWriter sw = new StringWriter()) { Dictionary<object, object> arg = new Dictionary<object, object>(); arg["title"] = "template sample"; arg["data"] = new string[] { "foo", "fooo", "<strong>foooooooooo!</strong>" }; func(sw, arg); Console.WriteLine(sw); } } }
サンプルテンプレート
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title><%= args["title"] %></title> </head> <body> <h1><%= args["title"] %></h1> <table> <% string[] data = (string[]) args["data"]; %> <% for(int i = 0; i < data.Length; i++) { %> <tr bgcolor="<%= i % 2 == 0 ? "#FFCCCC" : "#CCCCFF" %>"> <td><%= i %></td> <td><%= data[i] %></td> </tr> <% } %> </table> </body> </html>
出力例
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>template sample</title> </head> <body> <h1>template sample</h1> <table> <tr bgcolor="#FFCCCC"> <td>0</td> <td>foo</td> </tr> <tr bgcolor="#CCCCFF"> <td>1</td> <td>fooo</td> </tr> <tr bgcolor="#FFCCCC"> <td>2</td> <td><strong>foooooooooo!</strong></td> </tr> </table> </body> </html>
CodeDom 使って動的コンパイル……って、このコードのままだとセキュリティ的に大問題な気がするな。
素直に ASP.NET 使ったほうが楽だと直感した。
あと EscapeString すっごく自信ない。たぶん修正が必要だと思うw
いちおう、ごりごりで作った。ごりごりのものができあがった。
おちから言うと、大会コンテスト用のサーバーにあげようとしたらパスワードが違うようで入れなくて、
再発行しても接続できなくてぼくの夏は終わった・・・
一応エントリーだけしておいたけど、何かむなしい。
ハッ、この隙にもっとつくりこめということかな??
正直デザインまでまるで手もつけられていないし、画像のUP/EDITもしようとしたのだけど、
一日じゃ実装までいかなかった・・・。
いまだ、いまのうちに・・・!!!
というか、代理でたてたサーバーにうまくUPすることができない…。
オワタ。完全にオワタ。
has_many :XXX, :through XXXX
:throughの使いどころがいまいちピンとこない。指定しておくと何かいいことがあるのだろうか?
全角スペースの混入を視覚的に判別できないだろうか。
一度でも全角スペースや+をタイプしてしまうと、IDEが内部エラーをおこしてしまう。削除にてこずる。
http://railsblog.drecom.jp/tamu/archive/9
include AuthenticatedSystem
before_filter :login_required, :only => [ :new, :update ] # newとupdateのみログインが必要
before_filter :login_required, :except => [ :index] # indexを除きログインが必要
./script/../config/boot.rb:59:Warning: require_gem is obsolete. Use gem instead.
[Ruby]9日目
正直どれもあまり役にたたなそうだなと立ち読みしながら思った。
Perlと同じぐらいの書籍がおいてあるのに書籍のレベルが総じて低い。期待値と未成熟さが同居している。
本を買っただけで、他にはなにもしなかった。
Railsでソーシャルブックマークを作ってみようか(第2回)
http://d.hatena.ne.jp/PoohKid/20070220/p1
これをちろりとやってみた。
ログインしたらIn the Caboose.なるポエムが表示されて変なプラグインいれちゃったのかとかなり反省。
よくわからない。
どうもしくじったようだ……。
とおもったら、できてたみたい。
views/account/index.rhtmlに記述されてた内容がそのまま表示されていたようです。
「エラーが発生しました。詳細についてはエラー・ログを参照してください。」
なんとなく構成はわかったから、そろそろコーディングしてみるか。
昨日買った本を読みながらやっていたのだが、この本がなかなかいい。
少なくとも最初に買った
とは大違い。実用書は現物をある程度見てから買わないとダメだと痛感した。
もし、この本を本屋で立ち読みしてからだったら買わなかっただろう。
やっぱSEはやるなー。秀和ははずすとほんとに本の趣旨がわからなくなる。
engines:なんだろう
Login engine:なんだろう
サンプルとかをみていると変数前に$、@がつく。なんだろう?スコープかな。
$→グローバル
サンプル突っ込んでいわれるがまま設定して500だと不慣れだとどうしていいかわからないよ。
せめて行とかでないものか、どこで設定するのだろうか。
探したがみつからなかった。
Rake Tasksの画面で
db:migrate:enginesと呼び出すところを候補がでないので、
db:migrateでメソッドをenginesにしてしまいなんで失敗するのかわからなかった。
にしてもまいった。こんな時間までがんばってみたが、本当にコーディングにも入れないまま終わりそうだ。
A | - | cross sectional area | 断面積 |
C | - | celerity or phase velocity of waves | 波の速さか位相速度 |
C_d | - | drag coefficient | 抗力係数 |
C_s | - | concentration on the seagrass surface | 海中植物の 表面への集中 |
C_w | - | concentration in the water column | 水柱における集中 |
D | - | molecular diffusivity | 分子拡散率 |
D | - | depth | 水深 |
DBL | - | diffusive boundary layer | 拡散境界層 |
δ | - | diffusive boundary layer thickness | 〃 の厚さ |
δ_D | - | diffusive boundary layer (==DBL) | |
δ_l | - | inertial sublayer or logarithmic (log) layer | 内部境界層かログ層 |
δ_v | - | viscous sublayer | 粘性底層 |
F_d | - | friction or viscous drag | 摩擦か粘性抵抗 |
F_p | - | form or pressure drag | 圧力抗力か形状抵抗 |
g | - | acceleration due to gravity | 重力加速度 |
H | - | water depth | 水深 |
H | - | wave height | 波高 |
h | - | canopy height | 林冠の高さ |
J | - | flux | フラックス |
κ | - | von Karman constant | カルマン定数 |
l | - | length scale | 長さスケール |
λ | - | wavelength | 波長 |
m | - | mass | 質量 |
μ | - | molecular or dynamic viscosity | 動粘性係数か分子粘性 |
p | - | hydrostatic or dynamic pressure | 静水圧か動圧 |
Q | - | volume flow rate | 体積流量率 |
ρ | - | density | 密度 |
REI | - | relative wave exposure index | 相対波露出度 |
Re | - | Reynolds number | レイノルズ数 |
Re_crit | - | critical Reynolds number | 臨界レイノルズ数 |
St | - | Stanton number | スタントン数 |
T | - | wave period | 波の周期 |
τ | - | shear stress | 剪断応力 |
τ_o | - | boundary shear stress | 境界剪断応力 |
τ_w | - | wall shear stress | 壁剪断応力 |
μ | - | current velocity | 流速 |
μ* | - | friction velocity | 摩擦速度 |
U_k | - | critical velocity | 臨界速度 |
U_o | - | free stream velocity | 自由流速度 |
ν | - | kinematic viscosity | 動粘性率 |
x | - | horizontal distance | 水平距離 |
χ | - | principal flow direction | 主要流向 |
y | - | cross-stream direction | 交差流の方向 |
z | - | vertical direction or depth | 縦方向か水深 |
z_o | - | roughness height | 荒さの高さ |
~% wget -S --spider http://www.kantei.go.jp/ --23:26:05-- http://www.kantei.go.jp/ => `index.html' www.kantei.go.jp をDNSに問いあわせています... 202.232.58.50, 202.232.190.90 www.kantei.go.jp|202.232.58.50|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... HTTP/1.1 200 OK Date: Wed, 05 Sep 2007 14:26:05 GMT Server: Apache Last-Modified: Wed, 05 Sep 2007 10:36:48 GMT ETag: "84e2-7930-fb9f3000" Accept-Ranges: bytes Content-Length: 31024 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html 長さ: 31,024 (30K) [text/html] 200 OK ~% wget -S --spider http://www.kantei.go.jp/ --23:30:11-- http://www.kantei.go.jp/ => `index.html' www.kantei.go.jp をDNSに問いあわせています... 202.232.190.90, 202.232.58.50 www.kantei.go.jp|202.232.190.90|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... HTTP/1.1 200 OK Server: Zeus/4.2 Date: Wed, 05 Sep 2007 14:30:11 GMT Content-Length: 31024 Accept-Ranges: bytes Content-Type: text/html Last-Modified: Wed, 05 Sep 2007 10:36:48 GMT Connection: Keep-Alive 長さ: 31,024 (30K) [text/html] 200 OK
大概理解した。管理の甘いサーバはサーバサイドスクリプトでのっとり、それが出来なきゃindex.htmlおいてのっとり表示orフィッシング、最悪○○.txtや○○.jpgでhtmlおいてクライアントサイドスクリプトで嫌がらせorトロイつーとこですか。
うん。そういう感じ。
置き土産のフィッシングサイトがレンタルサーバーの規約に違反して公開停止の措置をうけました。
よぼぼん。
GDで1.0倍とか掛けるのはよさそうな手だね。
他になにか手があるかな、
認証APIあたりをつかって匿名アップローダーにするとかしか思いつかないや。
googleあたりでフォルダ名あたりから辿ってアタックしているんだろうね。
そこらへんはBBSあたりへの手口と一緒かも。
アップローダー。結局どれもずるずるなんだよね。
どうしたもんか。
ハックしてくるひとのために勝手口に鍵を掛けてないドアを用意して、
入れるようにしておいて、中にはいったらお茶でも出してまっててやりたい。
大概理解した。管理の甘いサーバはサーバサイドスクリプトでのっとり、それが出来なきゃindex.htmlおいてのっとり表示orフィッシング、最悪○○.txtや○○.jpgでhtmlおいてクライアントサイドスクリプトで嫌がらせorトロイつーとこですか。
どうも、その「ずるずるのアップローダー」はターゲットらしい。いろいろやられてる所が散見されました。
やっぱりIEのおせっかい仕様がガンだなぁ。firefoxだとcontent-typeを無視しないから、画像として表示しようとして、表示できなくて終わりだけど、IEだと中身がHTMLだとHTMLとして解釈しちゃうんだよな。
根本対策は、いったん画像をコンバートしてから保存するようにして、画像として処理できないデータは破棄するしかないのかな。GDとかImageMagicで1.0倍に変換とかしたらうまくいったりしないのかな?あとはアップロード時にはCAPTCHA使うとか。
でも、その「ずるずるあっぷろだ」をやめて、世界的にはマイナー、ただしユーザはそこそこいるアップローダにしたら、とりあえず大丈夫な気がする。
この攻撃、のっとったサーバかボットネットか何かから、手当たり次第に特定環境を機械的に攻めてるだけじゃないかな?だから、狙われないマイナーな奴使うのも一つの手だと思うよ。
何はともあれサイト復旧がんばってください。
ごめんね紛らわしいかきかたした。
ヘッダって書いたのはバイナリヘッダね。
ファイルの先頭数バイトとファイナルにファイル情報数バイト入ってたりするじゃない。
あそこらへんに画像情報ヘッダ埋め込まれて、実態はスクリプトファイル。
ごめんね、急いで書いたから適当に書いちゃった。
アップロードを試みられたファイルを適当に名前だけのっけておくね。
jpgなんて拡張子でphp割り当ててないから動くわけもないんだけどさ、
どうもあれこれしようとした形跡はあった。
phpスクリプトをよしんば動かせたとしても、権限がないから設定を書き換えたりはできないんだけど、もし権限があったらgif画像でスクリプト動いてたんだろうね。
で、実質あまり被害が広がったとも思えないけど、txtでフィッシングサイトの置き場にされてあえなくアボン。
アップローダーとか画像アップ用のスクリプトを安全に運用するすべはないもんかのー
.174 UPLOAD data_w2box/index.htm.jpg
.251 UPLOAD data_w2box/tac6.php.jpg
.217 UPLOAD data_w2box/c99.php.jpg
72.9 UPLOAD data_w2box/d.html.JPG
4.33 UPLOAD data_w2box/mad.gif
44.6 UPLOAD data_w2box/sniper_sa.php.jpg
.246 UPLOAD data_w2box/c99built16.php.jpg
.196 UPLOAD data_w2box/cmd.jpg
4.15 UPLOAD data_w2box/shell.php.jpg
72.9 UPLOAD data_w2box/pouya2.html.JPG
.157 UPLOAD data_w2box/mefisto.txt
.119 UPLOAD data_w2box/pv2.php.jpg
78.8 UPLOAD data_w2box/rv.php.jpg
.101 UPLOAD data_w2box/hack.jpg
1.15 UPLOAD data_w2box/index.jpg
4.83 UPLOAD data_w2box/qqq.jpg
4.83 UPLOAD data_w2box/hacked sssssubay.jpg
1.15 UPLOAD data_w2box/hacked.jpg
1.15 UPLOAD data_w2box/hackedturan.jpg
1.15 UPLOAD data_w2box/hacked turan.jpg
.180 UPLOAD data_w2box/c99.jpg
.180 UPLOAD data_w2box/root.jpg
8.11 UPLOAD data_w2box/se.php.jpg
7.59 UPLOAD data_w2box/putrio.php.jpg
.144 UPLOAD data_w2box/r57.txt
.144 UPLOAD data_w2box/ugur.txt
.128 UPLOAD data_w2box/hacked_sssssubay.jpg
0.14 UPLOAD data_w2box/verification.txt
6.97 UPLOAD data_w2box/test.php.jpg
.224 UPLOAD data_w2box/tool.txt
72.9 UPLOAD data_w2box/hacked.txt
つか、こいつわかりやすい名前つけるよな。。
ちなみに最後のやつがPayPalのフィッシングサイトだそうで、
サーバー管理にひっかかった。
きみがそんな書き込みをするから見に言っちゃったじゃないか。
そして思わず' -- で検索しちゃったじゃないか。
Database Results Error Description: [Microsoft][ODBC dBase Driver] クエリ式 '(タイトル LIKE '%' --%' AND タイトル読 LIKE '%%' AND 記事種別 LIKE '%%') ORDER BY 雑誌ID ASC,開始 ASC' の 構文エラー Number: -2147217900 (0x80040E14) Source: Microsoft OLE DB Provider for ODBC Drivers One or more form fields were empty. You should provide default values for all form fields that are used in the query.
くそテキストがたまに日本語名でやってるのあるけど、ほんとにやりやがった!
やっぱりLike検索なんだろうなとは思ったよ。
SELECT * FROM 雑誌 WHERE (タイトル LIKE '%::タイトル::%' AND タイトル読 LIKE '%::タイトル読::%' AND 記事種別 LIKE '%::記事種別::%') ORDER BY 雑誌ID ASC,開始 ASC
入力してない項目にまで検索を掛けているのはどういうわけか。
もちろんindexなんて貼ってるわけないんだろうな。
aspか。なんか懐かしいな。
可哀相だからここまでにしておく。これ増田の良心。
おまえらも絶対insertとか流すんじゃないぞ?
rubyとは - はてなダイアリー Rubyとは - はてなダイアリー
RubyForge: One-Click Ruby Installer: Project Info
RDE(Ruby Development Environment) - Ruby??J??????????
#!/usr/bin/ruby -Ks
# print "Content-Type: text/html;charset=UTF-8\n\n"
p "表示"
http://127.0.0.1:3000/ http://127.0.0.1:3000/recipe/list
http://127.0.0.1:3001/ http://127.0.0.1:3001/recipe/list
http://127.0.0.1:3001/account/signup http://127.0.0.1:3001/test
Hot Chips (delete) Snacks 2004-11-11
Ice Water (delete) Beverages 2004-11-11
Killer Mushrooms (delete) Snacks 2005-09-13
満足せる豚。眠たげなポチ。:Rolling with Ruby on Rails - Japanese Translation - p1
満足せる豚。眠たげなポチ。:Rolling on Ruby on Rails - Japanese Translation - p5
ITmedia エンタープライズ:第1回 Instant Railsで始めるWindows環境のRails (1/2)
DROP TABLE IF EXISTS `items`;
CREATE TABLE items (
id int(11) NOT NULL auto_increment,
login varchar(80) default NULL,
password varchar(40) default NULL,
);
えぇてるのぉと:Railsでログイン認証 - livedoor Blog(ブログ)
8 app/views/test/index.rhtmlの編集
Welcom <%= @session['user'].login %>!
Login Generator (1) - Nowhere Near
config/environment.rb に以下の行を追加する。
module LoginEngine
config :salt, "your-salt-here"
end
Engines.start :login
パパブログ: RoR : login_generator : login中のユーザ情報の取得
@session['user'].login
で、idやloginが取得できる。
ちなみにidはActiveRecordおなじみのidで、
;C:\nonidata\InstantRails\ruby\bin;
cd C:\nonidata\InstantRails\ruby\bin
C:\nonidata\InstantRails\ruby\bin>gem install login_generator
Successfully installed login_generator-1.2.2
C:\nonidata\InstantRails>cd C:\nonidata\InstantRails\rails_apps\cookbook
C:\nonidata\InstantRails\rails_apps\cookbook>ruby script/generate login Account
create lib/login_system.rb
C:\nonidata\InstantRails\rails_apps>cd C:\nonidata\InstantRails\rails_apps\cookbook
C:\nonidata\InstantRails\rails_apps\cookbook>ruby script/generate controller test
exists app/controllers/
[Ruby] Rails(ActiveRecord)の多対多関連 - yuum3のお仕事日記
has_one
has_many
belongs_to
has_and_belongs_to_many
habtm と has_many :through (ActiveRecord)
ActiveRecord の歩き方 - Association 編(1) - Rails で行こう! - Ruby on Rails を学ぶ has_many :comments
developerWorks Japan has_one :address
Rubyist Magazine - RubyOnRails を使ってみる 【第 3 回】 ActiveRecord
create メソッドを使うこともできます。create は new したあと save (DB に格納) します。
Rubyist Magazine - RubyOnRails を使ってみる 【第 4 回】 ActionPack
find(:all, :conditions => ["user_name = ?", user_name])
find_all(["user_name = ?", user_name])
find_all_by_user_name(user_name)
Part2 Rubyに学ぶ「Ruby on Railsの正体」:ITpro
book = Product.find_or_create_by_name_and_price('book', 2079)
リスト7●productsテーブルからnameが'book',priceが2079であるようなProductオブジェクトを読み取り,存在しなかった場合はデータベースにレコードを新規作成する処理
RoR Wiki 翻訳 Wiki - HowToUseLegacySchemas
恣意的で複雑なクエリや、主キーを持たないテーブルにはfind_by_sqlを使う
テーブルが論理的な主キーを持たないなら、
find_by_sqlを使えば主キーを全く指定しない曖昧で複雑なクエリを実行も実行できる。
Post.find_by_sql ["SELECT * FROM posts WHERE author = ? AND created > ?", author_id, start_date]
エディタ utf8
チュートリアルを動かしてみる - 肩書「シニアコンサルタント」のつぶやき
Railsでソーシャルブックマークを作ってみようか(第1回) - 坊やがゆく
ようこそ<%= @session['user'].login %>さん
Railsでソーシャルブックマークを作ってみようか(第2回) - 坊やがゆく
Railsでお馴染み37signalsのURLが凄い件について:TKMR.blog.show
URLにキーワードを含めことでSEO対策になるかも、でもそれだけ:TKMR.blog.show
http://127.0.0.1:3001/recipe/list
tetraの外部記憶箱 - Instant Railsのインストール , 追記:phpMyAdminの日本語環境設定 , 未踏ソフト記事
___ ./ \ .| ^ ^ | | .>ノ(、_, )ヽ、.| <コミック世界の女装キャラを見て淡い夢を抱いている __! ! -=ニ=- ノ!__チェリーボーイや腐った女子は、もっと現実を直視した方がいい。 /´ ̄ ̄ .|\`ニニ´/ `ヽ { .|__  ̄ ̄ヾ } i;;',,, r---イ /|,、_,, ,',;:',i .l;';',;,, } /;\ / ヽ / ,;,;;',;l .|;;',;, } ./;;;,, \ / ;;;;;;ヽ ,,;;','i i;',, / /;;,',';; ノ--, ',',;;::',',゛i ,,';';i i;,'; /./,',',';;" / \ ',',',;;,'i ,;',i / / i 、 / ヽ ',;::'、| \ ヽヽヽヾ丿 〈 ヽ'' {//// ```` ト, i | 、 i´´´ |',',;; } ! ',',;;i |,','、 / ヽ',',','| !;;', / !,',;,;'|