カテゴリー : Ruby on Rails

[Ruby on Rails] ArgumentError (invalid byte sequence in US-ASCII)

Ruby on Rails であるあるエラー、

ArgumentError (invalid byte sequence in US-ASCII)

の対処法は、マルチバイト文字(日本語とか)を使っているファイルの先頭に、エンコーディングを指定する。

# encoding: utf-8

ちょっとすると、忘れてしまうのですよね。

[Ruby on Rails] ページごとにtitleを変更する方法

Ruby on Rails でページごとにtitleを変更する方法をメモ。

■ ERB

<title><%= content_for?(:title) ? yield(:title) : "default title"%></title>

■ Haml

%title><
  - if content_for? :title
    = yield :title
    |デフォルトタイトル
  - else
    デフォルトタイトル

metaタグのdescriptionやkeywordsも同じように書けます。

■ app/views/layouts/application.html.haml

- if content_for? :meta_description
  - meta_description = yield :meta_description
- else
  - meta_description = 'default description'
%meta(content="#{meta_description}" name="description")
- if content_for? :meta_keywords
  - meta_keywords = yield :meta_keywords
- else
  - meta_keywords = 'default keywords'
%meta(content="#{meta_keywords}" name="keywords")

■ どこかの view

= content_for :meta_description do
  #{@item.description}
= content_for :meta_keywords do
  #{@item.name}
= content_for :title do
  #{@item.name}

[Ruby on Rails] デフォルトのアクションを only で制限しつつ、独自のアクションを追加する方法

Ruby on Rails のルーティング設定で、デフォルトのアクションを only で制限しつつ、独自のアクションを追加する方法をメモ。

resources :blogs, only: %w[index show] do
  collection do
    get 'search'
  end
end

rake routes すると、blogs#index, blogs#show の他に blogs#search が加わっているはず。

[Ruby on Rails] acts_as_list の使い方

Ruby on Rails で acts_as_list を使うときに参考になったサイトをメモ。

swanandp/acts_as_list · GitHub はてなブックマーク - swanandp/acts_as_list · GitHub

Acts as list by swanandp はてなブックマーク - Acts as list by swanandp

つくるぶガイドブログ: ドラッグアンドドロップで並べ替え(Rails + Ajax) はてなブックマーク - つくるぶガイドブログ: ドラッグアンドドロップで並べ替え(Rails + Ajax)

Ruby/Ruby on Rails/acts_as_list – TOBY SOFT wiki はてなブックマーク - Ruby/Ruby on Rails/acts_as_list - TOBY SOFT wiki

Sortable List in Ruby on Rails 3 – Unobtrusive jQuery | Web Tempest はてなブックマーク - Sortable List in Ruby on Rails 3 – Unobtrusive jQuery | Web Tempest

JQuery UI Sortable を使ってドラックアンドドッロプでRuby on Railsの一覧表示の順を設定する – @yuumi3のお仕事日記 はてなブックマーク - JQuery UI Sortable を使ってドラックアンドドッロプでRuby on Railsの一覧表示の順を設定する - @yuumi3のお仕事日記

Sortable | jQuery UI はてなブックマーク - Sortable | jQuery UI

Sortable – jQuery UI API 1.8.4 日本語リファレンス – StackTrace はてなブックマーク - Sortable - jQuery UI API 1.8.4 日本語リファレンス - StackTrace

[Ruby on Rails] 改行コードを br タグへ変換する

Ruby on Rails で改行コードを br タグへ変換するメソッドをメモ。

simple_format だと p タグが邪魔なので、自作ヘルパーを ApplicationHelper に入れておくと幸せになれそう。

module ApplicationHelper
  # 改行コードをbrタグへ変換する
  def linebreak_to_br(text)
    text.gsub(/\r\n|\r|\n/, "<br />")
  end
end

simple_format (ActionView::Helpers::TextHelper) – APIdock はてなブックマーク - simple_format (ActionView::Helpers::TextHelper) - APIdock

[Ruby on Rails] 現在のURLの取得方法(パラメータ付きも)

Ruby on Rails3 で 現在のURLを取得する方法を色んなパターンでメモ。

■ パラメータ付きURLをそのまま使いたいとき

url_for(params)

■ パラメーターを追加するとき

url_for(params.merge(foo: 'bar'))

■ パラメーターを削除する時は、nilにする。

url_for(params.merge(foo: nil))

参考情報

Railsで現在のURLにパラメーターを追加/削除したURLを取得 – このブログは証明できない。

[Ruby on Rails] helperメソッドをcontrollerやmodelで使う方法

Ruby on Rails にて、helperメソッドをcontrollerやmodelで使う方法を調べたのでメモ。

簡単には include ActionView::Helpers を書けば良い。

全部のヘルパーは不要なときは、下記のように指定して書く。

class Bill < ActiveRecord::Base
  include ActionView::Helpers::NumberHelper
 
  def hoge
    number_with_delimiter 1234
  end
end

【参考】

ruby on rails – Using helpers in model: how do I include helper dependencies? – Stack Overflow はてなブックマーク - ruby on rails - Using helpers in model: how do I include helper dependencies? - Stack Overflow

モデルからヘルパーを使う – 主に Ruby On Rails のこと はてなブックマーク - モデルからヘルパーを使う - 主に Ruby On Rails のこと

[Ruby on Rails] arel_table の使い方

Ruby on Rails の Arel というか arel_table の使い方を理解するために読んだ記事をメモ。

rails/arel · GitHub はてなブックマーク - rails/arel · GitHub

第43回 Rails 3を支える名脇役たち その1 – Arel -:Ruby Freaks Lounge|gihyo.jp … 技術評論社 はてなブックマーク - 第43回 Rails 3を支える名脇役たち その1 - Arel -:Ruby Freaks Lounge|gihyo.jp … 技術評論社

Rubyを使い始めた (2) – Rails3のArelの例 – アジャイルSEを目指すブログ はてなブックマーク - Rubyを使い始めた (2) - Rails3のArelの例 - アジャイルSEを目指すブログ

Arel でサブクエリ #AdventCalendar #Rails – Qiita はてなブックマーク - Arel でサブクエリ #AdventCalendar #Rails - Qiita

arel_table むずい。

[Ruby on Rails] model の attribute は nil? で判定せずに blank? か present? で判定しよう

タイトルだけで完結していますが、Rails には、blank? や present? という便利メソッドがあるので上手く活用しようというお話。

nil?またはempty?を判定するblank? – ザリガニが見ていた…。 はてなブックマーク - nil?またはempty?を判定するblank? - ザリガニが見ていた...。

Railsエンジニアならこれだけは知っておけっていう便利メソッド – (゚∀゚)o彡 sasata299’s blog はてなブックマーク - Railsエンジニアならこれだけは知っておけっていう便利メソッド - (゚∀゚)o彡 sasata299's blog

それだけ。

[Ruby on Rails] Devise の current_user メソッドをオーバーライド

Ruby on Rails にて、Devise の current_user メソッドをオーバーライドする方法をメモ。

常にユーザの権限(Role)もまとめて取得する場合は、こんな感じに書く。

# app/controllers/application_controller.rb 
class ApplicationController < ActionController::Base
  alias_method :devise_current_user, :current_user
  def current_user
    if devise_current_user.nil?
      nil
    else
      User.find_by_id(devise_current_user.id, include: :role)
    end
  end
end

【参考】ruby on rails 3 – Where to override current_user helper method of devise gem – Stack Overflow はてなブックマーク - ruby on rails 3 - Where to override current_user helper method of devise gem - Stack Overflow