タグ

railsに関するYasunのブックマーク (15)

  • tumblrみたいなやつのRoutingパターン

    tumblrみたいなやつのRoutingパターンtumblrみたいなやつ (そろそろ適当な名前を決めたくなってきた) をRuby on Railsを利用して実装するにあたって、主にRoutingの周りで考えたことについてまとめておく。他の人がWebアプリ書くときの参考になれば。 機能 tumblrみたいなやつには以下のような機能がある。 ログイン・ログアウト・サインアップ 記事の一覧・詳細・投稿・編集・削除 あるタグの付いた記事一覧 あるユーザの投稿した記事一覧 記事にスターを付ける・外す 記事にタグを付ける・外す 通知一覧 画像投稿 config/routes.rb Routingのコードはコピペするとこうなってる。 Rails.application.routes.draw do root to: "posts#index" get "/@:user_id" => "users#sho

  • Rails require_treeを排除し、アセットパイプラインで、コントローラー固有のCSS、JavaScriptを組み込む

    これで、jqueryとjquery_ujsとturbolinksの JavaScriptを全Viewに組み込む。これはまぁ良しとしよう。問題は最後の1行である。このrequire_tree . この命令は、app/assets/javascripts/ フォルダ配下にある全ファイルを対象とするよという意味を持つ。これはいくら何でも気持ち悪い。実際に試したことがないので、正確なところは把握していないが、プロジェクトで利用する自作のJavaScriptファイルを全部まとめちゃうということになるので、変数名がバッティングしたり、function名がバッティングしたり、ページロード時にやたらと多くのfunctionが実行されたりすることになるんじゃないだろうか?? CSSの方についても、同じような不具合が考えられる。自分で記述したCSSですら、別ページで利用するものと内容がバッティングしていないか

    Yasun
    Yasun 2015/01/07
  • RailsのCSRF対策の仕組みについて - (2015年までの)odaillyjp blog

    先日、Rails で開発しているときに意図しない InvalidAuthenticityToken エラーが発生して、すごくハマってしまいました。そのときに Rails のCSRF対策の仕組みについて調べてみましたので、ブログに残しておきます。 Rails のCSRF対策 Rails が生成した ApplicationController には以下の記述があります。 class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception end protect_from_forg

    RailsのCSRF対策の仕組みについて - (2015年までの)odaillyjp blog
  • Rails の認証プラグイン Devise での Strong Parameters について

    公式の devise readme を中心に、Rails で Devise を使う際の Strong Parameters について調べたのでまとめました。 — 環境 — Rails 5.0.0.1 Devise 4.2.0 【追記 2016/11/08】 Devise 4 における Strong Parameters の Parameter Sanitizer API が変更されていたので、Devise 4 環境での Strong Parameters について追記しました。 https://github.com/plataformatec/devise 【追記ここまで】 — 記事初回公開時の環境 — Rails 4.0.1 Devise 3.2.2 Devise の3つのアクションと許可パラメータ ビューをカスタマイズする場合、新しい属性をフォームに追加する場合があります。Rails4

    Rails の認証プラグイン Devise での Strong Parameters について
  • Railsの第4世代認証エンジンDeviseのREADMEを翻訳してみた - babie, you're my home

    Devise の README は懇切丁寧だが、その分クソ長いので、読むのに疲れる。後続のために訳してみることにした。無保証。OAuth2 の部分は飛ばした。長いし。差し迫ったら訳します。 Devise Devise は Warden をベースにした Rails のためのフレキシブルな認証ソリューションです。 Rackベース Rails エンジンに基づいた完全な MVC ソリューション 1回の認証で複数のロールを持たせることができます あなたが必要な部分だけ使えるモジュラー構造というコンセプトに基づいています 以下の11のモジュールで構成されています: Database Authenticatable ユーザーがサインインする時に認証するためにパスワードをデータベースに暗号化し保存します。この認証は POST リクエストまたはBasic認証を通して行われます。 Token Authenti

    Railsの第4世代認証エンジンDeviseのREADMEを翻訳してみた - babie, you're my home
  • Railsでアソシエーションされたモデルを条件にして検索する

    ブログポストが複数カテゴリを持てるという場合で、 ある記事と同じカテゴリを持つ記事を探すということをやりたい。 #Postモデル class Post < ActiveRecord::Base has_and_belongs_to_many :categories end #交差テーブル class CategoriesPost < ActiveRecord::Base end #Categoryモデル class Category < ActiveRecord::Base has_and_belongs_to_many :posts end post = Post.first categories = Category.joins(:posts).where("posts.id = ?", post.id).select("categories.id") category_ids = c

    Railsでアソシエーションされたモデルを条件にして検索する
  • Railsの開発効率を上げる - guard-rubocopを使ってRailsで自動で静的コード解析ツール(RuboCop)を実行させる - Rails Webook

    Guardとは Guardとはファイルの変更を検知して、自動的にさまざまな処理を実行してくれるRubyのGemです。 これ単体で使うよりも、他のツールと連携し、自動的に処理を行い開発効率を上げるために使います。 メジャーどころとしては、次の3つだと思います。 guard-livereload - Viewファイルの変更したときに自動的にブラウザをリロードする guard-rspec - specファイルを変更したときに自動的にRSpecを実行する guard-rubocop - ファイルを修正したときにRuboCopを実行する 記事では、Railsへguard-rubocopの導入方法を記載します。 また、rubocopは自動で動くので、失敗したときに、Mac OS X の通知センターの機能を使って通知するようにします。 対象読者 Railsの開発効率を上げたい方 確認バージョン Mac

    Railsの開発効率を上げる - guard-rubocopを使ってRailsで自動で静的コード解析ツール(RuboCop)を実行させる - Rails Webook
  • 静的解析ツールgem RuboCop|TechRacho by BPS株式会社

    こんにちは、ikedaです。 社内で、ソースコードレビューが活発になってきており、その私感を社内のミニプレゼンで発表しました。 ミニプレゼンの中で、ソースコードのコーディングルールを守って記述していたり、事前にチェックしておくと レビューする側の人の負担が、減りますよね。という話でした。 発表資料については、社内のコードやコメントを含めていたので、techrachoに記事は載せないつもりです。 コーディングルールを細かく指摘することは、コードを書く際のルールや決まり事を知ることができますし、一般的に読みづらくないコードを書く癖を付ける機会にはなります。 とはいえ、インデントや、モジュール、クラス、メソッド、変数、などの命名規則のチェック、誤字脱字レベルの誤りのチェックなどを、目grepで探すことは、レビュアーに負担を与えることになってしまいますし、レビューを依頼する人にとっても、こういった

    静的解析ツールgem RuboCop|TechRacho by BPS株式会社
  • オレオレRailsアプリを支えるインフラの作り方 - くりにっき

    はじめに これは Ruby on Rails Advent Calendar 2014 - Qiita の19日目です 18日目 @yancya さんの Rails でシングルじゃないテーブル継承 - Qiita でした 19日目:オレオレRailsアプリを支えるインフラの作り方 最近では Heroku などのPaaS*1 も普及してインフラのことを知らなくても簡単にアプリを公開することができるようになりました。 しかしトラブルシューティングやパフォーマンスチューニングなどを行うにはアプリケーションコードだけで完結することは少なく、全体像を把握する必要があります。Railsアプリケーションの裏でどんな構成で動いているかを知っておくかは重要なのでざっくりと紹介したいと思います。 書かないこと Railsアプリを作る上でのノウハウ 便利なgemや外部サービスの紹介 *2 監視 アラート検知 モ

    オレオレRailsアプリを支えるインフラの作り方 - くりにっき
  • Rails でドメインロジックの実装方法まとめ - assertInstanceOf('Engineer', $a_suenami)

    このエントリは Ruby on Rails Advent Calendar 2014 の 7 日目のエントリです。 前日は seri_k さんの「Turbolinksさんと上手く付き合う10の方法」でした。 お詫び WIP です。公開期限に間に合わない可能性があるため、まだ途中ですが先に公開してしまいました。 サンプルコード等を後ほど追記する予定です。 → 12/08 18:10 追記しました。 Rails のファットモデル問題 Rails で構築したアプリケーションが大規模になり機能が増えていくにつれてモデルが大きくなり、そのうち手がつけられなくなる問題は古くから指摘されています。これについてはもはや詳細を述べるまでもないと思うので割愛しますが、この問題は 2014 年になった今でも多くの開発チームを悩ませていると感じています*1。 このエントリでは、普段 Rails を業務で使いながら

    Rails でドメインロジックの実装方法まとめ - assertInstanceOf('Engineer', $a_suenami)
  • Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami)

    この記事はRuby on Rails Advent Calendar 2013の6日目の記事です。 前日は @tkawa さんの「Favoriteの設計実装はパターンとして使える」でした。 Railsで適切に責務を分割するということ RailsはいわゆるMVCと呼ばれるアーキテクチャパターンにのっとったフレームワークであり、プロジェクトを作成するとデフォルトでmodels/、views/、controllers/などのディレクトリが作成されます。 基的にロジックを記述する場所はモデルであり、ビューには表示処理だけを、コントローラにはアプリケーション上必要な手続きだけを記述するべきであると一般的には言われています。*1 ただ、それを忠実に実践していった結果、モデルが肥大化しメンテナンシビリティやテスタビリティが低下するという問題も多く指摘されています。 これについては4日目に @joker

    Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami)
  • PHPerがRailsデビューしてWebAPIを作りRSpecでテスト書いてCap3/CircleCIでデプロイして分かった事を1ヶ月前の自分に教えたいので、まとめてみた - Qiita

    PHPerがRailsデビューしてWebAPIを作りRSpecでテスト書いてCap3/CircleCIでデプロイして分かった事を1ヶ月前の自分に教えたいので、まとめてみたRubyPHPRailsRSpec タイトル長い。すまぬ。PHPerとして約10年近く。Ruby自体は案件によってちょこっとだけ触ったことがある程度。Rails自体を格的にさわるのは今回が初めて。PHPだとCakePHPを中心にZend/Symfonyなどいくつか。そんな僕が今回、Rails4デビューをして、WebAPIを作り、RSpecでテスト駆動開発風味で、GitHubプルリクベースの、CircleCI経由デプロイをするまでの開発の流れをひと通りやってみて、分かったことがいくつかあったので、それをまとめてみた。過去の自分のために。 注意点としては、今回作ったのはWebサービスではなく、スマホゲーム(ネイティブ)のサー

    PHPerがRailsデビューしてWebAPIを作りRSpecでテスト書いてCap3/CircleCIでデプロイして分かった事を1ヶ月前の自分に教えたいので、まとめてみた - Qiita
  • 中規模Web開発のためのMVC分割とレイヤアーキテクチャ - Qiita

    TL;DR MVCもレイヤで捉えて関係性の設計をするといいのでは 普通のRubyオブジェクトを積極的に使いたいですね 「パーフェクト Rails」に期待しましょう 長くなって面倒くさくなり、途中から手抜き感が半端ないですが許してください この記事の位置付けなど 7 Patterns to Refactor Fat ActiveRecord Models - Code Climate Blog [翻訳] エリック・エヴァンスのドメイン駆動設計 エンタープライズ アプリケーションアーキテクチャパターン これらの参考文献を踏まえてRailsアプリケーションのリファクタリングをしていて、だいぶ方向性や考え方がまとまってきたので、これからチームに合流する人を想定読者に、Qiitaがどんな感じで作られているのかを文書化したものです。(参考文献の一覧は記事の最後にあります) 内容的には文献[2,3]を踏

    中規模Web開発のためのMVC分割とレイヤアーキテクチャ - Qiita
  • Capybaraを使う際に知っておきたいこと - Qiita

    defaultは? defaultではRackTestが使用されていて、高速だしRubyで書かれているのでRuby以外に依存してるソフトウェアが無くて良いのですが、JSが実行出来ませんし外部APIとかも叩けません。 個人的な意見としてはJS実行、外部APIを叩くことが必要でなければRackTestのままでいいと思います。 JS実行や外部APIを叩きたければ? こうなるとheadlessではないSelenuimか、headless driverであるCapybara-webkitやPoltergeistになってきます。 まず、headlessではないdriverを選んでしまうとテスト実行毎にブラウザが立ち上がってしまいます。これは陶しいのでメインで使うには不適当です。 ということでheadless driverであるCapybara-webkitやPoltergeistになってきます。 最

    Capybaraを使う際に知っておきたいこと - Qiita
  • いつも忘れる「Railsのgenerateコマンド」の備忘録 - maeharinの日記

    当にいっっつも忘れる(T-T) ので、よく使うコマンドだけメモ なお、網羅的な解説は以下のサイトがよくまとまっている! railsコマンド(rails) - Railsドキュメント はじめに 全てのrailsコマンドは-h (or --help)オプションでヘルプが見れる $ rails -h $ rails generate -h $ rails generate scaffold -hgenerateのショートカットはg $ rails g scaffoldgenerateは-p, [--pretend]でドライランできる $ rails generate scaffold AdminUser name:string mail:string -pgenerateで生成したファイルを削除するにはdestory $ rails destroy AdminUser 主要generateコマ

    いつも忘れる「Railsのgenerateコマンド」の備忘録 - maeharinの日記
  • 1