タグ

railsに関するwyumikokhのブックマーク (11)

  • Rails tips: 知らないと損する4つのバリデーションレベル(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Ruby on Rails - four levels of the data validation you should be aware of(リンク先はarchive.org) 原文公開日: 2018/04/06 著者: Paweł Dąbrowsk(リンク先はarchive.org) 2018/05/09: 初版公開 2021/12/02: 更新 考えるまでもないことですが、アプリがユーザー入力を受け取ったらバリデーションが必要になります。Ruby on Railsアプリでバリデーションといえば真っ先に思い当たるのがモデルのバリデーションです。しかしそれ以外のレベルのバリデーションについてはどうでしょう。モデルのバリデーションがあれば完璧なソリューションになるのでしょうか?今回はRailsアプリの4つのレベルのバリデーショ

    Rails tips: 知らないと損する4つのバリデーションレベル(翻訳)|TechRacho by BPS株式会社
  • nil? empty? blank? present? の使い分け - Qiita

    まず、nil?とempty?はrubyのメソッドで、blank?とpresent?はrailsで拡張されたメソッド(つまりrubyでは使えない)ってことを覚えておく。 - nilは存在しないという意味。 対して ""は「何も無い」が存在している。空白の存在。

    nil? empty? blank? present? の使い分け - Qiita
  • Railsで超簡単API - Qiita

    概要 RailsAPIモードを利用してAPIを作成する手順をまとめました。 作成するAPIへのリンク 手順 1. APIモードでRailsアプリの作成 2. モデル・コントローラの作成 3. 名前空間を意識したルーティングの設定 4. コントローラの設定 5. postmanを使用して動作の確認 6. APIにテストを作成する APIモードでRailsアプリの作成 外部からPostというモデルの情報の作成・取得・削除・編集ができるような形式にします。 通常のrails newコマンドの末尾に--apiをつけることでAPIモードでアプリを作成することができます。 (APIに必要ない部分をデフォルトで作成しなくなります。)

    Railsで超簡単API - Qiita
  • Railsのテストの仕方(Minitest編) - Qiita

    MinitestはRails標準のテスティングフレームワークです。特に追加でgemを入れる必要もなく、使うことができます。 Minitestを使うことでルーティング、各コントローラ間のワークフロー、データベースとのやり取り、メソッドの挙動、ブラウザに返されるHTMLファイルの内容、等々、様々なものを簡単にテストすることができます。 稿ではMinitestの使い方や、それを取り巻く周辺知識について解説していきます。 各種設定・構成 テストデータベースと設定 デフォルトではRailsアプリは3つのデータベース(test、development、production)を持ちます。 テスト・開発・番環境でそれぞれ専用のデータベースを用いることで、その他の環境を汚すことなく安全に運用することができます。 各々の環境におけるデータベース設定は、config/database.ymlに記載されていま

    Railsのテストの仕方(Minitest編) - Qiita
  • 変数と定数 (Ruby 3.3 リファレンスマニュアル)

    [edit] ローカル変数 インスタンス変数 クラス変数 クラス変数のスコープ グローバル変数 擬似変数 定数 定数参照の優先順位 Ruby の変数と定数の種別は変数名の最初の一文字によって、ローカル変数、インスタンス変数、クラス変数、グローバル変数、定数のいずれかに区別されます。通常の変数の二文字目以降は英数字または _ですが、組み込み変数の一部には「`$'+1文字の記号」という変数があります(組み込み変数を参照)。変数名の長さにはメモリのサイズ以外の制限はありません。 ローカル変数 例 foobar 小文字または`_'で始まる識別子はローカル変数またはメソッド呼び出しです。ローカル変数スコープ(クラス、モジュール、メソッド定義の体)における小文字で始まる識別子への最初の代入はそのスコープに属するローカル変数の宣言になります。宣言されていない識別子の参照は引数の無いメソッド呼び出しとみ

  • NoMethodError: undefined method `password_digest=

  • Carrierwaveで画像をリサイズする - paranitips

    RMagickを使って画像のリサイズを行います。 今回はサムネイル表示用にバージョンthumbもつくってみます。 gemのインストール # Gemfile gem 'carrierwave' gem 'rmagick' # 今回のリサイズ処理に必要 リサイズ処理を記述 # app/uploaders/image_uploader.rb ... class CommentImageUploader < CarrierWave::Uploader::Base # RMagickをincludeします include CarrierWave::RMagick # 1200x900にリサイズします process resize_to_limit: [1200, 900] # バージョンを作成して、別のリサイズを指定することもできます version :thumb do process resize

    Carrierwaveで画像をリサイズする - paranitips
  • CarrierWaveを使った時にundefined method `validate_integrity'が出て困った話 - kk2170の日記

    TL;DR アプリケーション名とCarrierWaveで生成されるuploaderが同じ名前になるとundefined method `validate_integrity'のエラーが出て困る。 とった解決策 多分何らかのオプションがあってずらせる気がするが、今回はアプリケーション名とuploaderが変わるように変更した。 まとめ 名前空間が衝突すると変なことになるので注意 前提 多分こんなマヌケなことをやらかすのは僕だけだと思ってるのですが、 Rails+CarrierWaveを使った時にうまく動かなくてちょっと諦めかけてたのですが、問題自体がかなり間抜けっぽかったので多分皆引っかからないと思うのですが解決策もよくわかってないのでメモだけは残しておく。 CarrierWaveのせいでもRailsのせいでも無くて使い手の問題な気がします。 つまり俺が悪い。一応バージョンだけ記載しておきま

    CarrierWaveを使った時にundefined method `validate_integrity'が出て困った話 - kk2170の日記
  • ビュー(view) | Railsドキュメント

    ビューについて 説明 HTML、XMLなどの各種フォーマットでのレスポンスを生成 主に、ユーザに見せるインターフェイスのデザイン ビューの規約 ファイルはapp/viewsディレクトリに格納 ビュー変数 ビューからコントローラのインスタンス変数(@変数名)にアクセスできる

    ビュー(view) | Railsドキュメント
  • 早い、簡単、生産的!? RailsのHTMLテンプレートエンジン Slim入門 - Rails Webook

    はじめに RailsではView(HTML出力)のためには標準ではERB(.erb)を使用しています。 しかし、erbは汎用的なテンプレートエンジンであり、HTML以外にも様々なファイルにRubyコードを 埋め込めることができるため、HTMLを作成するにおいていくらか冗長な箇所があります。 そのため、より生産的にHTMLを作成するために、Railsでは Slim (拡張子 xxx.html.slim) Haml (拡張子 xxx.html.haml) という2つのHTML用のテンプレートエンジンがよく使われます。 そして、今回はタイトルからも分かるようにSlimについて説明します。 Hamlについては、こちらを参照して下さい。 Slimの特徴としては、 タブによりHTMLのタグ構造を表すので、必要最低限のコードだけで良いのでコーディング時間が減る デフォルトでHTMLエスケープをするので安

    早い、簡単、生産的!? RailsのHTMLテンプレートエンジン Slim入門 - Rails Webook
  • アセットパイプライン - Railsガイド

    1 アセットパイプラインについて アセットパイプライン(asset pipeline)は、JavaScriptCSSアセットの配信を処理するためのフレームワークを提供します。これは、HTTP/2のような技術や、アセットの連結や最小化といった技術を活用することによって行われます。アプリケーションは、最終的に他のgemのアセットと自動的に結合できるようになります。 アセットパイプラインは importmap-rails gem、sprockets gem、sprockets-rails gem によって実装されており、デフォルトで有効になっています。新しいアプリケーションを作成する際に、以下のように--skip-asset-pipelineオプションを渡すとアセットパイプラインを無効にできます。 ガイドでは、CSSの処理にsprocketsを、JavaScriptの処理にimportmap

    アセットパイプライン - Railsガイド
  • 1