2010-01-01から1年間の記事一覧
以下の発見がありました。(Rails 2.3.5) 例えば before_destroy などのコールバックで条件により削除させない方法があること ActiveRecord#destroy の戻り値で判定できる事 以下、ソースサンプルモデル def before_destroy if hoge? errors.add(:fuga, "hell…
試してみようと思い、入れたら generate でエラー /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- rails/generators/migration (MissingSourceFile)どうやら最新は 2.3 で、それから Rails…
現状のものが使いにくかったので入替えました。以下のサイトが大変参考になりました。 http://namakesugi.blog42.fc2.com/blog-entry-65.html情報は上記のサイトに書いてあるので、私はそこに書いてなかった情報を載せますね。インストールしたのは以下のバ…
PDF出力に prawnto ではなく prawn を使っています。 モデル内で number_with_delimiter を使いたくなって調べました。 class Bill < ActiveRecord::Base include ActionView::Helpers::NumberHelper def hoge number_with_delimiter 1234 end end まっ、本…
よく以下のようなサンプルを見かけます。◆ ブログの show(ブログとそれにぶら下がる複数のコメントを表示) <%= render @blog.comments %> ◆ comments/_comment.html.erb <div class="comment"> <p> <strong>Comment last updated: <%= comment.updated_at %></strong> <%= link_to "Edit", edit_articl</p></div>…
「recently_activatedメソッドがありまへんでー」とエラーが出てしまう人の為に。app/models/user_observer.rb が生成されます。 def after_save(user) UserMailer.deliver_activation(user) if user.recently_activated end 実行すると以下のエラーメッセー…
initializer 'datetime_formats.rb', <<-CODE #Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") } # 他は省略ね CODE テンプレートを適用すると以下のエラー undefined local variable or method `time' …
P406 の「ネストされたリソース」って初心者から脱却すべき課題の1つだと思う。熟読すべし。ActiveRecord の 1:n の関係は理解できた人もそれをどうルーティングや表示と連携すれば良いのか?以下に要約。 1つの記事(article)に複数のコメント(comment)がぶ…
以下のソースを書いてみた。突っ込み歓迎します。以下は index ビュー <% @choice_users.each do |choice_user| %> <tr> <%= content_tag :td, check_box_tag("choice_user[#{choice_user.id}][my_check]", true, choice_user.my_check?) %> <%= content_tag :td</tr>…
バックアップとかは書いていない。必要最低限の情報のみ書きます。 あんまり使いこなしていないのでうまく行ったのかも(email.yml とかそのままでOKだった) アップグレード作業 cp ../redmine-0.8.4/config/database.yml config/ cp ../redmine-0.8.4/conf…
備忘録的に...どっちかって言うと vim の備忘録になるのですが、 「行選択モード」を使う機会が少ないのか、よく忘れます。 Shift+V で切り出したい範囲を選択(vim の行選択モード) 右記の様に入力する ⇒ :Rpartial hoge 後は切り出した側と切り出された側を…
必要に迫られたので、自分で書く事をせずに Google先生に頼ってしまいます。以下のページがヒットしました。 http://doruby.kbmj.com/talkOneself/20100308/_Ruby_勝手にリファクタリングさせてもらいました。 def self.hankaku?(str) return nil if str.nil…
非同期処理をやってくれる Delayed_job。 大量メール送信があるので、http://d.hatena.ne.jp/mat_aki/20100113/1263378918 を参考に実際に動かしてみる。rake がらみはどんなのがあるのかな $ rake -T | grep jobs rake jobs:clear # Clear the delayed_job …
備忘録的に... 5.day.since.to_date # => 5日後 5.days.ago.to_date # => 5日前 # 月のループ (0..11).inject([]){|r, i| r << @date.beginning_of_year.months_since(i)
特定アクションの layout 変更はほとんど以下の形式で説明されています。 class HogesController < ApplicationController layout "no_menu", :only => :fuga ... 上記のやり方だと、デフォルトで使っていた layout(application.html.erb)が他のアクションで…
こんな感じになったけど、いいのかな… def initialize(attributes = nil) attributes ||= Hash.new attributes[:hoge] ||= 'fuga' super end
git svn clone した後に git log すると Date がGMT(+0000)ってなってた。 マニュアルを調べて、 --locatime オプションを追加して clone し直すと期待する日本時間になった。 よかった*2
実際に動かしながらいじったほうが良いと思います。 オーム社のサイトからサンプルソースをDL(多分 zip ファイルが日本語対応) たくさんフォルダがあって分かりにくい $ mkdir log $ rake db:migrate $ rake db:fixtures:load http://localhost:3000/store h…
職員とその給料なのですが、以下の仕様をどう実現して良いか今日分かった。 給料日は月毎。なので年月フィールドで識別。Salary#payday = "201004" としています user.salaries で同じ年月のレコードは含めたくない User has_many Salary な関係です。 has_m…
最後に「;nil」って付ける。nil って出ちゃうけど一杯になるよりマシ。 >> users = User.find :all; nil => nil
対象はWindowsとみなし、SJISで。 モデルでCSVを作って、コントローラで文字コード変換。 コントローラ。format を使うんですね。 def index @projects = Project.all respond_to do |format| format.html # index.html.erb format.xml { render :xml => Pro…
出来るかな?と思ってやってみたら出来た! ユーザの指定日のブログを得る。無ければ生成する。 blog = @user.blogs.find_or_initialize_by_work_date(date) find_or_create_by_... もあるよ。
都道府県プルダウンを選択すると、その隣にある市区町村プルダウンが動的に変化する ・・・みたいな。(^^; ビュー <%= collection_select :prefecture, :id, Prefecture.all, :id, :title %> <%= observe_field(:prefecture_id, { :update => :city_id, :on …
heroku のアカウントは作成済みとする。 git もインストール済み。 gem install heroku rails rails-app cd rails-app git init git add . git commit -m 'first commit' heroku create この時点で勝手にアプリ名が付与される。("rails-app" ではない) creat…
確かに簡単です。ただ、Excel2000 ではNGだった(確認済み)のが惜しい。
<% @shop = shop %>上記の存在理由が分からなかったけど、やっと理解できた。 例えば @shops[0].name => nil @shope[1].name => "hoge"の場合、2番目のテキストフィールドにはデフォルトとして、"hoge"が入ってるのね...
config/environment.rb config.frameworks -= [ :active_record ]上記でARを使わないようになる。けど、ActiveFormは使っている。 以下のエラーが出た orz $ ruby script/server => Booting WEBrick... /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib…
./script/generate roles Role Userを実行すると色々と生成されますよね。 test/fixtures/users.yml に admin が追加されますが、 roles: adminが追加されるが正しくは roles: admin_roleじゃね?あと、Role モデルに has_and_belongs_to_many :usersが無い…
http://www.atmarkit.co.jp/fcoding/articles/3rdrail/03/3rdrail03c.html を読んで test メソッドの事を知りました。そこで実験してみた。 require 'test_helper' class ItemTest < ActiveSupport::TestCase def test_hoge assert true end test "fuga" do …
fixtureファイルには ID を書く必要無いって言うけど、書きたいときもあるじゃん。 あと、一番最初の本番運用時に、テストデータを削除して、 テーブルが空っぽの状態なら、「 ALTER TABLE `items` AUTO_INCREMENT =1 」で対応できる。