まず、ここまでで一旦整理する。 Time.nowはRubyの組み込みなのでシステムのタイムゾーンしか見ない。OSの時間と常に一致する。Time.localの出力結果もOSのタイムゾーンと一致する。 TimeWithZoneクラスはconfig.time_zoneに左右される。 Ruby組み込みのメソッドで取得したUTCの時間を基準に、設定されているタイムゾーンの時間に変換する。 ActiveRecordのインスタンスに対してアクセサを利用して時間をやり取りする場合はTimeWithZoneで行われる。 仮にTimeクラスを渡しても代入時にTimeWithZoneに変換される。 config.active_record.default_timezoneの設定はDBを読み書きする際に、DBに記録されている時間をTime.utcで読むかTime.localで読むかを設定する。 :utcの場合DB
最近、スマホからRESTでアクセスしてデータ取ってくるシステムのサーバーサイドを作ることが多いのですが、API仕様書書いてくれと言われて面倒になったので、なんとかしたかった。 そこで、そもそもRESTの入力と出力の仕様って、controllerのspecを書いていればそこに書いてあって出力も取れるので、それを整形してmarkdownにすりゃ大体OKじゃないかと思ったので、controllerのspecを流すついでに自動生成するようなGemを作りました。 Rubyistでない人にソース読んでくれ、とは言えないし。 joker1007/ghost_writer · GitHub なんかGemっぽいキラキラネームにしようと思って、それっぽい名前を付けましたが、相変わらず中身はしょぼいです。特に出力周りがw 後、rpsec-railsに依存しているので、railsじゃないと使えない。 使い方は、こ
$ bundle exec rake cookpad:spec FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFF...F....F.FFFFFFFFF FFFFFF.FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFF...FFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFF.FFFFFFFFFFFFFFF..FFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFF...FFFFFFF FFFFFFFFFFFF
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
Rails 3.2.0 から、マルチプロセス環境下(Unicornなど)では、 Rails.logger によるロギングが、以下のように複数のリクエスト同士で「混ざる」ようになってしまいました。 Started GET "/search?q=blip" for 0.0.0.0 at 2012-03-12 02:20:18 -0700 Processing by SiteController#search as / Parameters: {"q"=>"blip"} Started GET "/search?q=2bxen" for 0.0.0.0 at 2012-03-12 02:20:20 -0700 Processing by SiteController#search as / Parameters: {"q"=>"2bxen"} Rendered site/foo.html.erb
前回の「RailsでのfavoriteのURL設計」が思いがけなくそこそこ見てもらったようなので、いろんなパターンのURL設計を考えてみるシリーズをやってみたいと思います。(続くかどうかは未定) こんどはMioからは離れて、といってもほとんど同じようなものですが、Twitterのfollowのような機能を考えてみます。 Twitterの設計 考える前に、TwitterのWebサイトとAPIではフォロー関係の設計がどうなっているか参考に見てみましょう。*1 Webサイト URL フォローしている ユーザ(ツイート) /:screen_name/following フォローしている ユーザ /:screen_name/following/people フォローされている ユーザ /:screen_name/followers API*2 URL 追加パラメータ フォローしている ユーザ(ID)
1. RESTful Web アプリの 設計レビューの話 和田 卓人 (a.k.a id:t-wada or @t_wada) July 23, 2012 @ sendagaya.rb 3. 自己紹介 名前: 和田 卓人 (わだ たくと) ブログ: http://d.hatena.ne.jp/t-wada メール: takuto.wada@gmail.com Twitter: http://twitter.com/t_wada タワーズ・クエスト株式会社 取締役社長 4. 私と REST (input) • WEB+DB PRESS vol.32「REST アーキテクチャスタイル入門」 • はてぶ設計議論 • DHH の RubyKaigi 2006 Keynote • WEB+DB PRESS vol.38∼「REST レシピ」 • 『RESTful Web Service』
ちょっと前にいつだったか、自分の開発環境についてまとめた記事でも書こうかと思っていたんですが、 ついでだからShibuya.rbでLTのネタにしてしまえと、話をしてきました。 ちなみに、今回のShibuya.rbは何か話したい人が居たらどうぞって感じだったのですが、 いつのまにかLT大会になってましたw 俺のRails開発環境 View more presentations from joker1007 内容としては至極一般的な環境だと思いますが、 資料アップしたところ結構反響があったので、 やっぱ人の環境は皆気になってるのかなーと。 後は、これからRails始める人とかかな? 資料の補足 インテグレーションテスト cucumberを使ってるのは慣れによる所も大きいですが、 今は業務上の理由でコード書く人とテストケース書く人が分離しているので、 request specは使ってなかったりし
簡単な注文システムを想定してセッションを進めます。 以下を実行して、アプリの開発に必要となるファイルを生成します。 (rails -h と実行すると、利用可能な rails サブコマンドとサブコマンドの説明が表示されます) rails new chumon 必要なファイルが chumon ディレクトリの中に生成されます。 以降は chumon ディレクトリの中で作業を行います。 cd chumon 以下は Rails3.2 で最初にやらなければならないお決まりの設定です。 Gemfile を編集します。 gem 'therubyracer', :platform => :ruby Gemfile を編集した後は必ず bundle install コマンドを実行します。 bundle install Rails アプリのディレクトリ構造です。 . # |-- Gemfile # アプリで利用
Github に脆弱性。やった人は Rails に有りがちな脆弱性を issue に挙げていたが相手にされず、実際にそれを突いてきた。一見 childish だが、それだけ簡単に脆弱な実装がなされてしまうということだ。週明けの今日、Rubyist はまず関連情報に一読を。 — Yuki Nishijima (@yuki24) March 4, 2012 気になって調べたのでメモ。自分も気をつけないとなー。 Public Key Security Vulnerability and Mitigation - github.com/blog/ github に脆弱性があってそれが突かれたらしい。 Rails アプリにありがちな脆弱性の一つ、Mass assignment とかいうタイプの脆弱性である。 mass assignment 脆弱性とは mass assignment 脆弱性とは何か、
twitter bootstrapを更に便利に使うgemがtwitter bootstrap railsです。 railsアプリを作りましょう。 rvmでgem set作ります。 rvm --create 1.9.3-p125@tbrsample railsアプリ生成します。 gem install rails --no-ri --no-rdoc rails new tbrsample gemを指定しましょう。 Gemfileのgroup :assetsに追加します。 cd tbrsample vim Gemfile gem "twitter-bootstrap-rails" どん bundle install --without=production bootstrapをgenerateしましょう。 必要なjsやcssをapp/assets配下に配置します。 rails g bootst
方針 手元(Ubuntu)で開発して、サーバ(Ubuntu)にデプロイ出来るrails 3.1動作環境を作るのが目標 プロジェクト毎にユーザを作成する (各ライブラリをプロジェクト毎にbundlerで管理、デプロイをするため) 同様の理由でrbenvを使って各ユーザ毎にrubyのバージョンを管理 構成 静的なファイルへのリクエストは直接nginxで返す構成をとります(railsのpublic配下のディレクトリにあるファイル、適宜nginxのconfigに設定を追加する必要あり)。またrails3.1からAsset Pipelineが導入されたため/assets/〜に関するリクエストに関してもnginxで直接返すようにします。加えてnginx <=> unicorn間の接続にはUnix Domain Socketを用います。イメージを図にすると下記のようになります。 unicorn gith
新年明けましておめでとうございます。今年こそRuby/Railsをやってみようという人もいるかと思います。ここではRubyのコードを読むのに便利なツールを2つほどご紹介したいと思います。 ドキュメント生成ツールのRD、RDoc、SDoc ソースコードに埋め込んだコメントを、そのままドキュメントとして抽出するツールがRubyにはいろいろあります。いちばん古くからあるのは、RD(Ruby Document Format)と呼ばれるもので、Markdownなどと同様に構造を記述できます。 現在、Rubyに標準添付されているのはRDocです。RubyのソースコードからHTML+CSS+JavaScriptを吐き出して、ブラウザで閲覧しやすくしてれます。もう1つ、RDocに似たものにSDocがあります。Sはsearchableのことで、ブラウザ上でクラスやメソッド名をインクリメンタル検索できるのが特
scaffoldを使うとCRUDが揃った「土台」を一発で作れるわけですが、それをアレコレして全ての操作をAjax化してみたので、手順をまとめました。 記事を読むのがだりぃって方はソースコードをGitHubで公開してるので、そちらをご覧ください。 RubyもRailsもあんまり触った事がないので、識者によるツッコミ歓迎します。 (`・ω・´) 概要 やること indexの画面だけでCRUD、つまり新規作成 (Create)、表示 (Read)、編集 (Update)、削除 (Delete)を行えるよう、scaffoldで作成したファイルをいじります。 結論 form_for()にremote: trueを与えるだけで、とりあえずAjax化します。あとはサーバー側のレスポンスの内容を整えて、クライアント側で適切に処理してやればOKです。 作業 下準備(scaffoldとか) indexに編集フ
URL設計の前段階として、とても大切なのがリソース設計です。そのWebアプリ・Webサービスで何を提供するのかが決まる部分だからです。しかし、なかなかリソースという概念が定着していないようなので、Railsで採用されているパターン*1を例に挙げて紹介してみたいと思います。 今までのシリーズ記事と重なるところもありますが、まとめということで…。 リソースとは 簡単に言うと、「URLで示されるもの」です。URLというのが“Uniform Resource Locator”の略ですからね。 http://d.hatena.ne.jp/tkawa/20110819/p1 http://d.hatena.ne.jp/tkawa/20110819 最初のものは、前回書いたブログ記事『RailsでのURL設計を考えてみる(4) スラッシュと「持っている」関係』というリソースです。 その次は、『tkawa
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く