株式会社GroovesがWebアプリケーションエンジニアを募集中。Ruby、JavaScript、Ruby on Railsに関連する、提示年収400万円〜800万円の求人情報です。【募集終了】
![エンジニアを子供の憧れの職業に! Forkwell の開発メンバーを募集 - 株式会社Groovesの求人 - Forkwell Jobs](https://cdn-ak-scissors.b.st-hatena.com/image/square/0304735013856dc87e52adf579d22db163be3fbc/height=288;version=1;width=512/https%3A%2F%2Fd3bpwnzencusk5.cloudfront.net%2Fuploads%2Fjob%2F376%2Fjob_image%2F9195eca5c4c43dbaf03cc07e6c9e479a.png)
Railsでネストした関連先のテーブルもまとめて保存したい時に使うのが accepts_nested_attributes_forです。すごく便利。 Railsのソースコードを見ながら使い方をまとめてみました。 コンソールから色々試してみる 定義する class User < ActiveRecord::Base has_one :profile has_many :academics accepts_nested_attributes_for :profile accepts_nested_attributes_for :academics end profile_attributes= と academics_attributes= メソッドが追加される $ rails c has_one の場合 # 登録時 > params = { user: { name: 'Test', pro
カテゴリーを4つつけたら [Ruby][Rails][失敗談][tips] 記事タイトル と非常に読みづらくなったので、初期設定のカテゴリーは分ける2行表示に戻した。 ========================================== それっぽい例で例えます。 完全そのものを言ってるわけではございませんw ショッピングカートシステムがあったとして、 Cartオブジェクトのインスタンスに、商品の種類・個数を持っていたとする。 種類はcodeとかproduct_nameとかそういう感じで、 個数はquantityかな。 で、大体のEC系サイトだと 「注文する」とか「カートに入れる」とかそんなボタンで、 カートに注文確定前の予定の品として、保持されますよね。 そこで、 一度入っている商品が、もう一度追加された場合にどうするか。 パターンとしては ・同じ商品の2商品目として追加す
明示してなければ 2.3.8。 Ruby については Ruby tips 参照。 モデル file_column 保存時に MIME タイプを取得 file_column の仕組みについては file_column プラグイン内部構造 - Rails で行こう! がわかりやすい。 # ActiveRecord::Base のサブクラス内 file_column :file def file_with_getting_content_type=(file) self.mime = file.content_type #=> 'image/png' とか self.file_without_getting_content_type = file end alias_method_chain :file=, :with_getting_content_type default_scope は危険
おとなしく同じ名前空間にモデルがあるとは限りません。たとえば、AwesomeLibrary::AwesomeModelという名前のモデルがあってそこと1:Nの関係を持たせたいとしましょう。 普通は has_many :awesome_models とかやるところですが、この場合はAwesomeModelを探そうとしてうまくいきません。答えはこちら。 has_many :awesome_models, classname: "AwesomeLibrary::AwesomeModel" おもえばなんてことはありませんでしたね。クラス名を指定してやればよかったわけです。 困った理由 自動生成されたとあるモデルに、has_manyしたいという事情ができてしまいました。困ったことに件のモデルは実体ライブラリに書かれているし、モデル名の変更なんてもってのほか。ならばどうするか…ということで調べてみまし
Are your controllers looking like this? class IssuesController < ApplicationController default_search_scope :issues before_filter :find_issue, :only => [:show, :edit, :update] before_filter :find_issues, :only => [:bulk_edit, :bulk_update, :destroy] before_filter :find_project, :only => [:new, :create, :update_form] before_filter :authorize, :except => [:index] before_filter :find_optional_project
So I found it out by myself. It is actually a pretty simple but powerful concept. It has to do with code reuse as in the example below. Basically, the idea is to extract common and / or context specific chunks of code in order to clean up the models and avoid them getting too fat and messy. As an example, I'll put one well known pattern, the taggable pattern: # app/models/product.rb class Product
パスワードの変更機能を作ってて パスワードはUserモデルの一部 パスワード変更画面は他の項目(都道府県とかのプロフィール項目)を変更する画面とは別 である場合、新しいパスワード(:password)はプロフィール変更時はバリデーションしたくなくて、ユーザー登録時とパスワード変更時のときだけバリデーションしたい、ということになる。 Userモデルとして考えた時、登録時だけ、とか変更時だけっていう場合は以下のようにon: :createとかon: :updateとかすればいいんだけど、この場合はそれじゃ辻褄が合わない。 validates :password, length: {minimum: MIN_LENGTH_PASSWORD}, on: :create どうすんべー、と思ってたら、このon: :hogehogeはテキトウに定義できるんだって。 http://api.rubyonra
10.1. TPC-Cとは¶ TPC-C とは、 TPC によって策定されたベンチマーク仕様の一つです。卸売業における注文・支払いなどの業務をモデルにしたトランザクションを実行し、システムの性能を測定します。データベースのER図を以下に示します。 warehouse : 倉庫を表しています。このテーブルのレコード数がデータベース全体の規模を決めるスケールファクタになっています。 district : 配送区域を表しています。倉庫あたり10の配送区域があります。 customer : 顧客を表しています。配送区域あたり3,000の顧客がいます。 history : 支払い履歴を表しています。初期値として顧客あたり1件の支払い履歴があり、支払いを行うと増加していきます。 item : 商品を表しています。このテーブルのレコード数は10万で固定されています。 stock : 在庫を表しています。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く