[Ruby on Rails] ArgumentError (invalid byte sequence in US-ASCII)
- 2013 1/20
Ruby on Rails であるあるエラー、
ArgumentError (invalid byte sequence in US-ASCII) |
の対処法は、マルチバイト文字(日本語とか)を使っているファイルの先頭に、エンコーディングを指定する。
# encoding: utf-8 |
ちょっとすると、忘れてしまうのですよね。
Ruby on Rails であるあるエラー、
ArgumentError (invalid byte sequence in US-ASCII) |
の対処法は、マルチバイト文字(日本語とか)を使っているファイルの先頭に、エンコーディングを指定する。
# encoding: utf-8 |
ちょっとすると、忘れてしまうのですよね。
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 で制限しつつ、独自のアクションを追加する方法をメモ。
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 を使うときに参考になったサイトをメモ。
・swanandp/acts_as_list · GitHub
・つくるぶガイドブログ: ドラッグアンドドロップで並べ替え(Rails + Ajax)
・Ruby/Ruby on Rails/acts_as_list – TOBY SOFT wiki
・Sortable List in Ruby on Rails 3 – Unobtrusive jQuery | Web Tempest
・JQuery UI Sortable を使ってドラックアンドドッロプでRuby on Railsの一覧表示の順を設定する – @yuumi3のお仕事日記
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 |
Ruby on Rails3 で 現在のURLを取得する方法を色んなパターンでメモ。
■ パラメータ付きURLをそのまま使いたいとき
url_for(params) |
■ パラメーターを追加するとき
url_for(params.merge(foo: 'bar')) |
■ パラメーターを削除する時は、nilにする。
url_for(params.merge(foo: nil)) |
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 の Arel というか arel_table の使い方を理解するために読んだ記事をメモ。
・第43回 Rails 3を支える名脇役たち その1 – Arel -:Ruby Freaks Lounge|gihyo.jp … 技術評論社
・Rubyを使い始めた (2) – Rails3のArelの例 – アジャイルSEを目指すブログ
・Arel でサブクエリ #AdventCalendar #Rails – Qiita
arel_table むずい。
タイトルだけで完結していますが、Rails には、blank? や present? という便利メソッドがあるので上手く活用しようというお話。
・nil?またはempty?を判定するblank? – ザリガニが見ていた…。
・Railsエンジニアならこれだけは知っておけっていう便利メソッド – (゚∀゚)o彡 sasata299’s blog
それだけ。
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