Rails4 でCSRF 対策を無効にしたい場合、CSRF 対策を無効にするコントローラーで次のように指定します。 app/controllers/some_controller.rb protect_from_forgery except: :some_action protect_from_forgery except: [:some_action1, :some_action2]
Rails4 でCSRF 対策を無効にしたい場合、CSRF 対策を無効にするコントローラーで次のように指定します。 app/controllers/some_controller.rb protect_from_forgery except: :some_action protect_from_forgery except: [:some_action1, :some_action2]
クラウドワークスの弓山 (@akiray03)です。 前回のブログに引き続き、Rails3からRails4にアップグレードした際に行った工夫をご紹介したいと思います。前回の記事を未読の方は、合わせてどうぞ。 engineer.crowdworks.jp 今回は、「モンキーパッチ」に焦点をあてて、取り組みを紹介します。安全な並行稼動を実現するために、いくつかのモンキーパッチを作成しました。作成したモンキーパッチを振り返ってみると、以下のように分類することができます。 Rails3/4並行稼動時に、双方を分離するためのモンキーパッチ Rails3/4並行稼動時に、双方の振る舞いを揃えるためのモンキーパッチ Rails3の振る舞いをRails4と揃えるためのモンキーパッチ (Rails3側にパッチを当てた) Rails4の振る舞いをRails3と揃えるためのモンキーパッチ (Rails4側にパッ
■ [rails] Rails と dalli で raw データを書き込む術 Rails 4 編 Rails と dalli で raw データを書き込む術 で紹介した術だけど、この方法だと unicorn を使った時に session の socket が close しているのに強引に書こうとして Dalli::RingError になるという現象に遭遇した。 で、よくよく調べてみたら、Rails core team が提供する mem_cache_store を使えば Rails.cache.write('foo', 'bar', raw: true) を使って raw データを書き込めることがわかった。Rails4 からは mem_cache_store 自体が dalli を使って実装されているので、dalli に付いている独自実装の dalli_store ではなく mem_
前回の「ActionMailerのSMTP設定、テンプレートで送信&ActiveModelの基本的な使い方とバリデーション」までで、Railsアプリケーション開発の主要な部分は説明が終わり、そろそろ本連載も終わりが見えてきました。今回はアプリケーションの国際化とRailsのセッティングについて解説します。 Railsではビューに記載する文字列やコントローラーやモデルの各種メッセージをユーザーの使用言語に応じて切り替える機能が用意されています。この機能は多言語に対応させるためだけのものではありません。モデルや属性の表現をビューごとに書くのではなく一元管理するためのものでもあるので、変更に強い開発をサポートします。 またRailsのセッティングでは、これまでほとんどデフォルトで使っていた設定を読み解き、Railsの機能について整理します。ステージングやプロダクション環境を作るときには頭に入れて
HOMEchevron_right技術chevron_rightRuby on Rails4のSessionをJSON形式にした時にハマったこと 状況 Ruby on RailsとNode.jsでセッションデータを共有したい状況がありました。 Session StoreにはRedisを使っています。 普通に考えると、クッキーからセッションID取って当てに行けばいけるだろうと考えるのですが、Railsは一筋縄ではいきません。 中身覗くとすぐ分かるんですが、セッションデータ自体がMarshalでシリアライズされた状態で保持されている為。 Node側でデータとってもJSONでパースできないし、なんだこりゃ?となります。 さてどうするか、となった時に参考にさせていただいた記事がこちら(感謝)↓ Rails sessionのシリアライズにJSONが使われない理由: なぜMarshal? JSON/Y
環境: rails (4.1.6) activerecord (4.1.6) mysql2 (0.3.16) Rails4 というか Rails でカウンター用カラムをインクリメントする簡単な方法がないか調べてみた。 やりたいこと MySQL だったら以下のような SQL を発行したい。 update books set reviews_count = reviews_count + 1, updated_at = now() where id = ? カウンターのインクリメントと同時にソートのために更新日時も一緒に更新したい。 検証用環境の作成 $ bundle exec rails new counter_app -d mysql -T --skip-bundle $ cd counter_app $ bin/bundle install --path vendor/bundle モデ
はじめに こんにちは!TypeScript好きですか!?僕はTypeScript大好きです! RailsはCoffeeScriptが主流ですよね、TypeScript使いたいですよね?使いましょう! Railsのバージョンは4.1です。Rails4で使いたいですよね! ちなみに僕はRailsは初心者です。よくわかっていません。 整えたい環境 Rails v=4.1 TypeScript使いたい とりあえずググってみた とりあえずいろいろググってみたら下記のような参考記事が出てきました。 Rails で TypeScript を動かそうとして失敗した記録 RailsでTypeScript、再び 1年以上前の記事なのでちょっと古いのですが、typescript-rails というgemがあることはわかりました。 とりあえず動いたっぽいということなので参考までに導入してみましょう。 とりあえず
Virtusというgemが便利でした Railsの検索フォーム等、モデルに紐付かないパラメータを処理する時などに使用するといいと思います。 class SearchForm include Virtus.model attribute :product_name, String attribute :group_id, Integer attribute :created_at_lteq, Date attribute :created_at_gteq, Date end # form_param = { product_name: 'hoge', group_id: '111', created_at_lteq: '2015/01/01', created_at_gteq: '2015/04/01' } form = SearchForm.new(form_params) form.pr
My ruby on rails action mailer runs all good in development environment, but in production environment, it keeps throw: ActionView::Template::Error: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true My development config is config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :port => xxx, :address
TL;DR This is your periodic reminder to specify dependency versions in your Gemfile I started updating one of our larger projects at work to use edge Rails. This project uses devise, and the Gemfile declares the dependency like this: The latest version of devise correctly declares its dependency on Railties on ~> 3.1: However, Devise version 1.5.3 does not declare a specific dependency on Rails (o
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
このようにキャッシュのキー名に views/ をprefixとしてつけることで、Rails.cacheの内容に直接アクセスすることができました。 しかし、Rails4からはerb内で <%= cache "hoge" %> のようにcacheヘルパーを使い、cacheの呼び出し・書き込みをするとdigestが付与されます。 つまり、Rails3までは views/hoge というkeyで保存されていたcacheが views/hoge-○○○○ と言った形で、キーのsuffixとして、一見ランダムな文字列が付け足されるようになりました。 何が問題か これがどう困るのかというと、controller等で
条件に当てはまるレコードを全て取得する「where」メソッド whereメソッドはカラムの値に条件を付けて該当するレコードを全て取得するためのメソッドです。findメソッドとは異なり、数値の範囲や文字列の一致など、検索機能を実装する際に使います。 whereメソッドの基本とプレースホルダー 例として、これまでに保存したユーザーの中から30歳以上のユーザーを求めてみましょう。 User.all.map{|user| [user.name, user.age]} # => [["アリス", 30], ["ボブ", 32], ["キャロル", 28]] users = User.where("age >= ?", 30) users.pluck(:name)# => ["アリス", "ボブ"] このwhereメソッドでは第1引数に条件である文字列、第2引数では第1引数の文字列内の「プレースホルダ
posted at 2014/01/14 by chikkun@コワーキングスペース町田 Ruby On Rails4の基本を、自分のメモも兼ねて、3回シリーズでご報告します。 今日はその第1回目(2回目はdeviseを使った認証機能の追加。3回目はRspecやCucumberを利用したテストの予定です)。 Railsを使って開発する直前までをまとめます。ただ一応、環境と目標とするのは以下のようです。OSの違いや、仮に同じOSでも微妙にバージョンで違ったりする場合もあるのでご注意下さい。 OSはCentOS6.5とする(MarvericksにParallelsを利用して、SDカードにインストールしたもの—ほとんど何もインストールされていない)。 アプリ名は「comachi」。 Apache2+Passengerを利用し、標準で付いているWEBrickは利用しない。 Railsは4とする。
Railsのコントローラーでのrenderメソッドの使い方について説明します。 renderメソッドは、「コントローラー(Controller)」と「ビュー(View)」のそれぞれにあります。 ここではコントローラーのrenderメソッドの使い方を示します。 ビューでのrenderメソッドの使い方は こちらを参照してください。 動作確認 Rails 4.1 目次 1. ビューを表示する 1.1. 暗黙的なビューの表示する 1.2. 他のアクションのビューを表示する(actionオプション) 1.3. 他のコントローラーのビューを表示する(templateオプション) 2. JSONを返す 2.1. renderメソッド 2.2. jbuilder 2.3. ActiveModelSerializer 3. ビュー以外を表示する 3.1. 文字列を表示する(textオプション) 3.2. X
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く