Railsメモ

2013年7月3日

rakeのバージョンが違うと怒られたとき

rakeのバージョンあげちゃって怒られるの巻。

$> rake db:migrate
You have already activated rake 10.0.3, but your Gemfile requires rake 0.9.2.2. Using bundle exec may solve this.

バージョンを指定してあげましょう

$> rake _0.9.2.2_ db:migrate
You have already activated rake 10.0.3, but your Gemfile requires rake 0.9.2.2. Using bundle exec may solve this.

deviseのログアウトでrouting error

config/initializers/devise.rbのconfig.sign_out_viaを:deleteから:getに変更してみましょう。
他への影響は知らん。

  # The default HTTP method used to sign out a resource. Default is :delete.
  config.sign_out_via = :get
RubyOnRails | majin | 12:22 | Comments (0)

Ruby2.0.0 + Rails4β実験環境を作ってみる。

2013年2月26日

Ruby2.0もでたことだし、せっかくだから赤の扉を選ぶぜRails4も試してみたくなり、環境を作って見ることにしました。

(more…)

RubyOnRails | majin | 23:39 | Comments (0)

ruby2.0.0インストール

2013年2月25日

Ruby20周年おめでとうございますということで、railsアプリを動かしているサーバのRubyを2.0.0-p0にアップデートしてみたので、そのメモを記載。
Railsアプリはapache+passengerの組み合わせで動いています。
前提としては、過去にすでにRubyがインストールされているという状況で、上書きインストールを行います。

(more…)

RubyOnRails,未分類 | majin | 22:59 | Comments (0)

ヤケクソ

2012年9月11日

rake db:dumpが動かなかった。怒られるの解決するほど根性も技もない。

しゃーないので、controllerにこんなの作った。

def yaml
    users = User.find(:all).to_yaml
    filename ="users.yml"
    users_sjis = users.tosjis
    send_data(users_sjis, :type => 'text/plain', :filename => filename)
end

動きゃ良いんだよ動きゃ・・・(プロ失格の台詞)。

RubyOnRails,日記 | majin | 22:47 | Comments (0)

RailsでJQuery mobile続き

昨日の続き。
devise以外でも気持ち悪い動作が多発してくれますね。

デザインにしろ動作にしろものすごく楽できるんだけど、ajaxとの相性の悪さはどうにもならないっぽいね。
動作そのものはajaxが入っている方が気持ち待たされない感じなので、必要に応じてajaxをoffにするのが良さそうな気がします。

link_to

リンク先なんかは適当です。

<%= link_to("index", :general_index, "data-ajax" => :false) -%>

form_for

コードはdeviseのsign_in部分から持ってきています。

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => {"data-ajax" => :false}) do |f| %>
  # フォームの中身
<% end %>

こんな感じで書けるね。

おまけ

リストビューで行の折り返し表示をさせる

<ul data-role="listview">
  <% @topics.each do |topic| %>
    <li data-role="list-divider">
      <p class="ui-li-aside">
    <%= topic.created_at.strftime("%Y年%m月%d日 %H:%M") %>
      </p>
      <%= topic.user.name %>
    </li>
    <li style="white-space: normal;">
      <p>
    <%= topic.comment %>
      </p>
    </li>
  <% end %>
</ul>

ここがキモ。全体で設定しても良いんだろうけど、個人的には必要に応じて切り分けたい。

    <li style="white-space: normal;">
RubyOnRails | majin | 02:43 | Comments (0)

devise + JQuery mobileでsign_outできなかった

2012年9月10日

表題の通り、スマホ用のviewを作るためにJQuery mobileを使い、さらにユーザのログイン管理として定番のdeviseを使っていたのですが、ajaxががんばりすぎてくれちゃったせいか普通にviewで

    <li><%= link_to "ログアウト", :destroy_user_session, :method => :delete -%></li>

なんて書いてもrouting errorでおこられました。
onloadイベントでajaxをoffにしても、backボタンで戻ったときなんかはイベントが発生しないので、再びajaxがonになってしまうようです。理由の如何はともかくログインしたらログアウトできないとか正直あり得ないので無理矢理にでも解決せねばお話しになりません。

仕方がないので、以下のような感じで対処しました。
動き気持ち悪いけど、ajaxは入っていた方が良いような気はします。

app/controllers/user_controller.rb

sign_out→リダイレクトのメソッドを作成。

class UserController < ApplicationController
  def sign_out
    sign_out_all_scopes
    redirect_to :root
  end
end

config/routes.rb

上記のメソッドのルートを作成。

  get "user/sign_out"

app/views/hogehoge.html.erb

ログアウトのリンクを以下のように修正。

  <li><a href="<%= url_for :user_sign_out -%>" data-ajax="false">ログアウト</a></li>

なんかもっとエレガントな解決方法ないんかなー。気になるなー。

RubyOnRails | majin | 02:56 | Comments (0)

Jpmobile::Mailerで:toに配列

2012年8月25日

ループで回してもいいけど

mail :to => to_array.join(','), :subject => 'これぞsubject'

でOK。

ActionMailerでそのまま送っても大体のMUAで問題ないんだけど、やはり精神的に気持ち悪いというか、日本語メールはISO-2022-jpで送るべきという固定観念があり、たとえモバイル用の環境を作る必要がなくてもJpmobile::Mailerは使いたいところ。

配列対応してくれると楽だし助かるけど、別にカンマで区切ってもサーバが認識してくれるならそれでいいじゃないですかという結論になったわけで。

ループで回すならコントローラー側でこんな感じ?

to_array.each do |to|
  MyMailer.confirm(to).deliver
end

んでMailerの方はこんなかんじかな

# -*- coding: utf-8 -*-
class MyMailer < Jpmobile::Mailer::Base
  default :from => 'hogehoge@hogehoge.ne.jp'

  def confirm(to)
    mail :to => to, :subject => 'これぞsubject'
  end
end

まあ無駄にループ回すのはあれなんで、あんまりいい方法とは残念ながら思えないわけで。

RubyOnRails | majin | 02:31 | Comments (0)

Rails+MySQLでASCなORDERかけてNULLが後ろに来るようにしたい

2012年8月21日

下記のようなかんじでOK

entries = Entry.all( :order => "COALESCE(time, 99999)")

COALESCEの後ろの項目は、ありえない最大値でもいれてあげれば大丈夫。

RubyOnRails | majin | 00:14 | Comments (0)

とあるウェブサービスっぽいものを作っていました。

はじめてのRails3.2でした。
細々と変わっていて、結構イヤンなところもありました。

便利だった人たち

jpmobile

gem 'jpmobile'

ただのview切り替えにしか使っていないけど、超便利。いろいろ楽。
フィーチャーフォン用の切り替えもできるけど、今回は切り捨てました。
実機の動作確認するためにsim差し替えはやりたくなかったので・・・。

crummy

gem 'crummy'

パンくずリストをらくらく作成。
実装そのものは難しくないとこだけど、シンプルに記述出来るのはいいね。

RedCloth

gem 'RedCloth'

Textile記述をhtml形式に変換。
入力側の手間はいるけど、Wikiクローン的なものが簡単に作れそう。

それぞれ説明は書かないんで検索してください。

RubyOnRails | majin | 00:10 | Comments (0)

typusの時代がもう終わってた?

2012年7月29日

Railsの環境をRuby1.9.3+Rails3.2に移行してみました。
なんかtypusくんが上手いこと動いてくれないので、ちょろっと調べてみたところ、「rails_admin」がよさそうな感じですね。試しに動かしてみた感じ、typusよりも便利そう。

参考URL

http://d.hatena.ne.jp/griefworker/20120628/rails_admin
http://d.hatena.ne.jp/hichiriki/20120126

あとActiveAdminも使えそうですね。
参考URL

http://namakesugi.blog42.fc2.com/blog-entry-100.html

いやまあRoRはホント色々先人たちのお陰で楽ができて幸せですね。
楽をするための苦労も楽しいんですが、楽して結果だけ得るのもまた楽しいものです。

RubyOnRails | majin | 03:26 | Comments (0)
Copyright © MAJIN_T
Powered by WordPress