Elevator.js fixes those awkward "scroll to top" moments the old fashioned way.
2013年08月20日10:29 Ruby いまさら聞けない!? accepts_nested_attributes_forの使い方 Railsのaccepts_nested_attributes_forを使い方を簡単に。 例えばBlogとArticleで1対多の関係の場合、Blogの作成時にArticleもまとめて作ろうとするときってありますよね。そういうときの話です。 まず、モデルでaccepts_nested_attributes_forを宣言し、 class Blog < ActiveRecord::Base has_many :articles accepts_nested_attributes_for :articles # これ! end class Article < ActiveRecord::Base belongs_to :blog end コントローラでは事前にAr
複数の関連を跨いでaccepts_nested_attributes_forを使う場合の話。 たとえば Organization has_many Groups Group has_many Employees というモデルに対して、1度にまとめてこれらのレコードを作成したい場合には次のようにする。 まずはクラスの定義: class Organization has_many :groups, inverse_of: :organization accepts_nested_attributes_for :groups # attributes: # name:string end class Group belongs_to :organization, inverse_of: :groups has_many :employees, inverse_of: :group accepts
GitHub PagesのWebサイトジェネレーターであるJekyllで複数言語のコンテンツを管理する方法を紹介します。複数言語のコンテンツを管理するとは、例えば、英語と日本語のコンテンツを提供しているWebサイトにコンテンツを追加・修正・削除し、継続的にメンテナンスするということです。 最初に結論を書くと、jekyll-task-i18nを使えばGitHub Pagesの仕組みから逸脱せずに複数言語のコンテンツを継続的にメンテナンスできる仕組みができます。 複数言語のコンテンツを管理するときの問題 複数言語のコンテンツを管理するときに問題になることは、情報のズレです。一方の言語では提供されている情報が、他の言語では提供されていないという状態です。情報は提供されているが、古い情報のままということもあります。 「作った後は変更しない」というWebサイトではあまり問題になりませんが、作った後も
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
最近、日本食が世界遺産に登録されましたが、 「日本食とは云っても、いつの時代のものを想定しているのか」 という問題がつきまといます。 飯盒の収集に凝っていた時の事、 「飯盒での炊飯は陸軍ではどうやっていたのだろう」 と調べていたら「軍隊調理法」という、大日本帝国陸軍のレシピ集を見つけました。 軍隊の料理といえば海軍モノが有名ですが、この本には調理の入門から述べられており、 軍での食事が広まって現代日本食を形作る。 「これが現代日本食の原点なのでは?」 と考えさせられました。 凝った調味料を使わず、数少ない材料を用いることといい学校給食の元祖ということも窺わせます。 この貴重な本が知られていないのは、実に惜しいと思いテキスト化することにしました。 レシピ集の大半は、実際に調理された 「再現! 大正・昭和の味 栃木護國神社」様 から半分を調達させていただきました。実に貴重なホームページです。
Google+ボタン はてなブックマークボタン 更新日時: 2013年10月24日(木) 作成日時: 2013年02月06日(水) 前の記事 / 次の記事 Railsでモデルを保存する時に、 accepts_nested_attributes_for を使ってアソシエーション先のモデルも含めて一発で保存する。 目次 やりたいこと やること 付随する機能 参考ページ やりたいこと 例えば、次のようなモデルがあって、 class Book < ActiveRecord::Base attr_accessible :author_id, :title belongs_to :author end class Author < ActiveRecord::Base attr_accessible :name has_many :books end BookとAuthorを同時に保存したい時、こう書
資料: 今までにあった質問 リフレッシュレートの変更 AUX 版, Indy 版, 書籍版 床井研究室 (OpenGL 関連記事) 柴山 健伸 先生 (システム工学部情報通信システム学科) の混沌としたサンプル 陳 謙 先生 (システム工学部デザイン情報学科) の Motif を使ったサンプル 中山 礼児 氏 (経済学部 2000 年卒) の Delphi についての解説 The OpenGL WEB Site (OpenGL の総本山) GLUT - The OpenGL Utility Toolkit (OpenGL.org の GLUT のページ) OpenGL Code & Tutorial Listings (OpenGL.org のチュートリアル集) OpenGL Technical FAQ (OpenGL について良く聞かれる質問) OpenGL FAQ 日本語 (OpenG
2012-03-27 Modelを作成する際に、関連はreferencesで定義する 最近になってとても重要な事に気付いた。 db/migrateの中身なんて、Tutorialやってからまったく見てなかったので。 Modelの関連を作成する際、[model_name]_idという属性を追加しますよね。 これを普通のcolumnとして追加しちゃってました。 動作上はまったく問題なく動くわけですけどね。 ただgenerateの際にreferencesで定義すると、自動でindexも貼ってくれるわけですよ。 まったくなんて事をしてしまっていたんだ。。 取り敢えず簡単なやり方だけ載せておきます。 こんなことも知らずにRails使ってるわけ?という突っ込みは甘んじて受けます。 情熱プログラマーも読みなおしているところですし、Rubyと一緒に基礎から学び直さねば。 decult 2012-03-27
Railsでは、ActiveRecordのhas_oneとbelogns_toを使って、DBの1対1のテーブル間のリレーションをモデルに簡単に実装することができます。 動作確認 Rails 4.1 ActiveRecord 4.1 目次 1対1関連とは 参照先の外部キーを追加する モデルにhas_oneとbelongs_toを追加する 使えるようになるメソッド 1. 1対1関連とは説明のために次のER図を実装してみます。 注文一つには多くとも請求書1つがあるビジネスの場合、「注文」から見ると「請求書」は"1"です。 請求書1通にも注文が必ず1つあるビジネスの場合、「請求書」から見ると「注文」は"1"です。 このような関係を「1対1関係」といいます。 ※注文と請求書のどちらにhas_oneを書き、どちらにbelongs_toを書けばいいのか? 明確な答えはありませんが、意味的に「注文は請求書
Railsでは、ActiveRecordのhas_manyとbelogns_toを使うことで、DBの「1対多」のテーブル間のリレーションをモデルに簡単に実装することができます。 動作確認 Rails 4.1 ActiveRecord 4.1 目次 1対多関連とは 参照先の外部キーを追加する モデルにhas_manyとbelongs_toを追加する 使えるようになるメソッド 1. 1対多関連とは説明のために次のER図を実装してみます。 顧客1人が複数回注文をするので、「顧客」から見ると「注文」は"多"です。 また、1注文は必ず一人の顧客から注文されないので、「注文」から見ると「顧客」は"1"です。 このような関係を「1対多関係」といいます。 2. 参照先の外部キーを追加するまず、多側のテーブル(今回はordersテーブル)にxxx_idという名で外部キーを追加します。 xxxの箇所は参照先の
上記のような一画面に基本情報(宛先、住所)と複数の明細情報(物品名、数量)がある画面で入力された情報を親子関係にある基本テーブル(発送テーブル)と明細テーブル(物品テーブル)に同時に登録したい場合が業務アプリではけっこうあると思います。 Railsではこのようなケースに簡単に対応するための便利機能が用意されています。具体的にはモデルでaccepts_nested_attributes_forという設定を、ビューでfield_forメソッドを利用します。この機能を利用すると以下の2つメリットがあるので是非活用することをオススメします。 ソースコードが短くてすむ ⇒ 後述しますが、特にコントローラー側の記述量は激減します。 明細データへのバリデーション結果が画面にキレイに表示できる ⇒ 親子関係をRailsに認識させることで明細データのバリデーション結果を表示するロジックを個別に実装する必要が
先日、has_one関連でaccepts_nested_attributesを使ってフォームを作ろうとしたら、ネスト先のフィールドが画面に出てこなくて小一時間ハマりました。そういえば以前も同じ事で悩んだような気がしたのでブログに残しておきます。 UserモデルとProfileモデルが存在し、1対1の関連で結ばれているよくある構成を例にします。ユーザー登録を行うフォームで同時にプロフィールも登録出来るようにします。 Userモデル class User < ActiveRecord::Base has_one :profile accepts_nested_attributes_for :profile end
こんにちは、鈴木です。 Techscore 本体の記事の下書きを書き進めています。 ということで、コールバックの記事の下書きを公開します。 コールバックの種類 コールバックとは、バリデーションの実行やデータベースへの保存などのタイミングで処理を行うための機能です。 あるタイミングで必ず実行する必要がある処理をコールバックに指定することで、モデルの一貫性を保つことができます。 Rails のコールバックの種類をまとめてみると、非常に多いことが分かります。 after_find 検索メソッドでオブジェクトが見つかったタイミングで実行されます。 検索条件を指定せずに all メソッドを呼び出すなど、検索結果が大量になる場合は注意が必要です。 検索結果の数だけコールバックが実行されますので、パフォーマンスに重大な影響を及ぼす可能性があります。 after_initialize オブジェクトがインス
5. CRUD CRUD=Create, Read, Update, Delete リソースの作成・取得・更新・削除機能を実装する RESTful APIの根幹をなす概念 HTTPメソッドのPOST, GET, PUT(PATCH),DELETEがそれぞれの機能 にアサインされる 6. CRUD(cont.) 例) 住所録つくるよ! ● POST /addresses…住所の新規登録 ● GET /addresses…登録されている住所一覧取得 ● GET /addresses/1…IDが1の住所を取得 ● PUT /addresses/1…IDが1の住所を更新 ● DELETE /addresses/1…IDが1の住所を削除 7. CRUD(cont.) class AddressesController < ApplicationController include Garage::R
目次 TL;DRテーブル構成 Railsモデル構成has_many, through の定義 belongs_to, through は使えない?1. delegate を使う方法2. has_one, through を使う方法 includes も使うことができるどちらの方法が良いか?参考TL;DRhas_many+throughの逆の関連の定義には: belongs_to+throughは使えないdelegate or has_one+through が使えるhas_one+through の方が効率もよく、 includes も使えてオススメテーブル構成とあるRailsアプリケーションでこんなテーブル構成があったとします。 Railsモデル構成ユーザー(User)は複数の記事(Post)をもっていて、その記事は複数のコメント(Comment)を持っている、という状態です。 clas
モデルのassociationを使ってcreateすると、belongs_toも自動的に設定されます。しかし、3者間関係のように複数のbelongs_toがある場合、それらを自動的に設定するためには一工夫必要になります。 書籍(book)が、会社に所属する著者(author)と会社(company)に所有されている場合で考えて見ます。そのままcreateすると、bookのcompany_id はnil になります。 普通の解決法は、bookのcreate時にcompanyを明示的に指定する方法です。 ちょっと気の利いた解決法としては、associationを使ってbuildしたものを、concatする方法があります。 has_manyに条件を設定することで、railsがbelongs_toの関係を知ることが出来、一度に設定できるようになります。has_many :through の時にも使
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く