userというディレクトリファイル以下にcontrollerを作成する方法 rails g controller user::hoges →create app/controllers/user/hoges_controller.rb どうやってやっているのかわからなかったけど、思ったより簡単に作成できます。
phpにはnl2brという改行を<br />に変換する関数がある。これのrails版。厳密にはhtmlエスケープした上で改行コードを<br />に変換する。 railsで改行を<br>変換する ns2brのrails版でapplication_helpers.rbに書いておく。viewでは<%= nl2br @msg %>のように使う。@msg="<strong>一行目</strong>\n二行目"に対してhbr(@msg)は"<strong>;一行目</strong><br />二行目"を返す。 def nl2br(str) str.gsub(/\r\n|\r|\n/, "<br />") end railsでhtmlエスケープした上で改行を<br>変換する html_escapeはh()のこと。application_helpers.rbに書いておく。viewでは<%= hbr @ms
1.7.1. 課題: 問い合わせフォームの実装¶ 単純な問い合わせフォームの実装を考えてみます。 問い合わせフォームでは、システム利用者が運営管理者に対して、意見を送ることができます。 画面イメージは以下の通りです。 「運営者に意見を送る」ボタンをクリックすると、DBに問い合わせフォームの内容が保存されます。 システムによっては、ボタン押下のタイミングで運営管理者に対してメールを送る、 などの実装も考えられます。 ここで一つ問題が発生しました。 ユーザが意見を送るボタンを連打すると、問い合わせが何度も実行されてしまいます。 問い合わせが何度も行われてしまうと、DBに重複したデータが登録されてしまいます。 場合によっては、メールが何通も飛んでしまったり、サーバに無駄な負荷がかかってしまいます。 1.7.2. Javascriptでサーバの二重投稿を防止する¶ 二重投稿を防止するには、「運営者
Railsのモデルファイルでのvalidationの方法です。 validateの対象を指定 validateを行うパラメータをvalidatesを使って宣言する class TestValidates < ActiveRecord::Base validates :param1 validates :param2 validates :param3 ・ ・ ・ end validateの条件の設定 存在チェック class TestValidates < ActiveRecord::Base validates :param1, presence: true ・ ・ ・ end 検証をスキップする場合 値が送られた場合のみvalidationを行いたい場合などは、以下を使う class TestValidates < ActiveRecord::Base validates :param
はじめに こんにちは。KitchHikeエンジニアの小川です。 Webアプリケーション開発において、コードベースが大きくなってくると、よく問題になるものの一つが表示ロジックの重複ではないでしょうか。知らず知らずのうちにビューに同じようなロジックが増えて、コードの見通しが悪くなってくるのです。 KitchHikeのコードにもその兆候が見られはじめたので、対策として ViewModel パターンを取り入れています。このパターンを適用することで、表示ロジックを集約し、コードのメンテナンス性を向上させることができました。 ViewModel は、そんなに凝ったことをしているわけではないのですが、コードをすっきりさせる上ではかなり強力なパターンです。 今回はこの ViewModel について、実際の使い方を含めご紹介したいと思います。 ViewModelとは? 一言でいえばビューに関連するロジックを
Carrierwave, モデルとの関連付けも簡単で便利ですが、 formを使わないケースについてあまり紹介されていないのでメモ has_one のパターン
spec/rails_helper.rb に Rails 特有の設定を書き、spec/spec_helper.rbには RSpec の全体的な設定を書く、というようにお作法が変わるそうです。これによって、Railsを必要としないテストを書きやすくなるんだとか。 参照先:http://blog.willnet.in/entry/2014/06/10/142341 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationWhat you can do with signing up
こんにちは。クライアントワーク事業部でサーバサイドエンジニアをやってる@kazasikiです。 今年もやってきましたAdvent Calendar。1日目は少し緊張しますね。 挨拶はほどほどにして、さっそくプログラムの話を始めましょう。 クライアントワーク事業部とRailsについて エンジニアの方々であれば、Railsの紹介は不要かと思います。現在クライアントワーク事業部では多くのWebサイトをRailsで構築しています。比較的短い期間で小〜中規模のWebサイトを作り上げることが多く、品質と生産性を安定させる意味でも規約が多いWebフレームワークを使うのは理にかなった選択です。(少なくとも私はそう思ってます。) しかし、規約が多いRailsの中でも、人によって違う使い方をしてしまう機能がいろいろとあります。今回はその一つとしてrails db:seedやその周辺を取り挙げます。 Rails
RSpecを適用したとき、fixturesファイルもspec/fixturesディレクトリに置いてました。 だって、RSpecが生成するspec_helper.rbにもそのディレクトリに置くように書いてくれるじゃないですか。 config.fixture_path = "#{::Rails.root}/spec/fixtures" ・・・が、これだとrake db:fixtures:loadは失敗します。 原因は単純で、rake db:fixtures:loadはtest/fixtures以下しか見ないからです。 rake db:fixtures:loadがみるパスを変えたい!と思い、色々検索してみたのですが見つからない。 なんかいい手はないものかとなんとなく、rake -hとすると、興味深いものが。 tsubame.local{miyohide}% rake -h rake [-f ra
rspec-rails、3.0.1 がリリースされていますね。インストールして rails g rspec:install とすると、spec/rails_helper.rb という見慣れないファイルが作成されます。これは一体何でしょうか。 rspec-rails のREADMEを読むと、これからは spec/rails_helper.rb に Rails 特有の設定を書き、spec/spec_helper.rbには RSpec の全体的な設定を書く、というようにお作法が変わるそうです。これによって、Railsを必要としないテストを書きやすくなるんだとか。 というわけで、これまで require 'spec_helper' としていた箇所の大部分は require 'rails_helper' に置換してあげる必要がありそうですね。パーフェクト Ruby on Rails のテストの章は
Rails: present?より便利なActiveSupportのpresenceメソッド(翻訳) Active SupportはRubyのコアライブラリにメソッドをたくさん追加するので、何かと非難が集中します。特に評判がよろしくないのは、RubyのObjectクラスへのパッチです。 RubyのあらゆるオブジェクトはObjectのサブクラスなので、Objectクラスにメソッドを追加すればコードのあらゆるオブジェクトにそのメソッドが追加されることになります。 Active Supportでの拡張に関するドキュメントでもう少し詳しく見てみましょう。 そうしたメソッドのひとつが#presenceです。これはお馴染みの#blank?(訳注: #empty?のエイリアス)や#present?に比べて馴染みの薄いメソッドです。 Rails API: presence -- Object Rails
I am trying to run rspec for Ruby on Rails. I am running Rails 4.1.1. I have installed the gem, have established a spec folder with some tests. I have created a directory through $ rails g rspec:install I tried to create a testing database through $ rake db:test:prepare but it throws this error message: WARNING: db:test:prepare is deprecated. The Rails test helper now maintains your test schema au
Railsで作ったプロジェクトを開発環境で動かしていくと、ある一覧ページを表示する度にすごい量のSELECTが発行されているように見え、先輩に相談! 「N+1問題」というものを教えていただきました。 N+1問題 / Eager Loading とは - Rails Webook 解決策 以下のページを参考にしました。 ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い - Qiita そもそもN+1問題はログを眺めていないと気づけないのでは…?と思ったところ、素敵なgemがあること先輩に教えていただきました! それが「bullet」です。 GitHub - flyerhzm/bullet: help to kill N+1 queries and unused eager loading 導入手順 導入は下記ページを参考にしました。 » Ra
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く