• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
 

remote_functionではPost値を:withでいちいち指定する必要がある。 フィールドの数が多い場合は大変だ。

そういう場合、prototype.jsにForm.serialize('フォームのID')でフォームの値をname1=value1&name2=value2形式にしてくれる関数が便利である。

   1  <%= javascript_include_tag "prototype" %>
   2  <script language="JavaScript">
   3  function newArticle(){
   4      <%= remote_function(:url => {:action => :new},
   5                           :update => 'list',
   6                           :with => "Form.serialize('article')"
   7      ) %>
   8  }
   9  </script>
  10  

posted by Face ysakaki on Tue 19 Aug 2008 at 12:01

たとえばJavaScriptの都合などでactionがnewでもeditでもフォームタグのidが同じになって欲しいことがある。 そういう場合は:html=>{:name1=>'value1',:name2=>'value2'}でhtmlオプションを指定できる。

   1  <% remote_form_for(@article, :url => {:action => :update, :id => @article}, :update => 'list',:html=>{:id=> 'article'}) do |f| %>
   2  
   3    <%= render :partial=>f %>
   4  
   5    <p>
   6      <%= f.submit "保存" %>
   7    </p>
   8  <% end %>

posted by Face ysakaki on Tue 19 Aug 2008 at 11:56

サーバーを再起動したらmysqlが起動していなかった。 サービスとして登録するには以下。

   1  # chkconfig --list mysqld
   2  mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
   3  #chkconfig --level 345 mysqld on
   4  #chkconfig --list mysqld
   5  mysqld 0:off 1:off 2:off 3:on 4:on 5:on 6:off

posted by Face ysakaki on Tue 12 Aug 2008 at 17:22

begin~rescue~endで処理する。 例外のメッセージにパターンがある場合はex.messageが特定文言を含むかどうか調べて人間に優しいメッセージに変更する。

   1    def destroy
   2      @article = Article.find(params[:id])
   3      begin
   4        if @article.destroy
   5          flash[:notice] = '記事を削除しました。'
   6        end
   7      rescue => ex
   8        #「violates foreign key」は外部キーの参照エラー。関連テーブルが存在するため削除できないことを意味する。
   9        if ex.message=~/violates foreign key/
  10          flash[:notice] = '該当記事を参照しているデータがあるため削除できません'
  11        else
  12          #その他の例外
  13          flash[:notice] = ex.message
  14        end
  15      end
  16      redirect_to :action => 'index'
  17    end

posted by Face ysakaki on Tue 12 Aug 2008 at 12:01

railsのcheck_buttonタグで選択済(checked)にするには、最後に:checked=>'checked'を追加する。

   1  radio_button("myform","category",1, :checked=>'checked')

すると下記のようなHTMLが出力される。

   1  <input checked="checked" id="myform_category" name="myform[category]" type="radio" value="1" />

posted by Face ysakaki on Wed 6 Aug 2008 at 15:39

CMSで改行入力したものを出力時に
として出力するヘルパタグ。 application_helper.rbに追加する用。

   1  def hbr(str)
   2    str = html_escape(str)
   3    str.gsub(/\r\n|\r|\n/, "<br />")
   4  end

VIEW側では<%=hbr textarea_value %>のように使う。

posted by Face ysakaki on Tue 5 Aug 2008 at 15:15

Ruby-GetText 1.90 以上はRails2系のみのサポートなので、Rails 1.2.x 系でアプリを起動しようとすると「undefined method `label'」というエラーになってしまうという話。

結構はまっている人が多い。

undefined method 'label' for class `ActionView::Helpers::FormBuilder by

結論から言うとgettext1.90以上ではRails1.2.x系をサポートしなくなったため。gemで古いgettextを入れた上でconfig/environment.rbに指定したバージョンを使うよう記述を追加する必要がある。

--
gem "gettext", "1.10.0"
require "gettext/rails"
--

参考:http://underscore.jp/diary/20080227.html#p01

posted by Face ysakaki on Thu 31 Jul 2008 at 10:24

どうも。榊です。

今まではてな(http://d.hatena.ne.jp/onering/)でBLOGしていましたが
技術系のエントリーはこっちにまとめることにしました。理由は以下。

  • はてなーの方はアーセナルBLOG化している。RSSリーダーやはてなアンテナでもそのように認識されているようだ<読者から
  • 技術系の話と日記系の話が混ざるとうざい
  • はてなーの方のBLOGデザインは気に入っているがプログラムソースの表示部分だけ気に入らない(背景とかぶって読めない)
posted by Face ysakaki on Tue 29 Jul 2008 at 12:01 with 3 comments
Contents
Form.seriarizeでremote_functionの:withにフォームの値を設定する
remote_form_forでフォームタグのidを指定する
Linuxのchkconfigでサービスのランレベルを設定する方法
Rails(Ruby)で例外処理
railsのcheck_buttonタグで選択済(checked)にする
HTMLエスケープして改行をbrに変換
Railsでundefined method 'label'エラーが出る件解決方法
移転開始しました
Comments
satoko: 私もGIMP入れてみたんですよ、で、同じ文字化け。 言語の優先順位を1.English、2:... '08-11
榊 祐介: >satokoさん コメントありがとうございます。 画像編集はGIMPを入れてみたのですがい... '08-11
satoko: しまったsubmitするの忘れてたのですが、昨日書いていたコメントです。^^ '08-11
satoko: あわあわ、私も今日までずっと困っていました。先ほど別のところでこの設定方法を学んだところです!... '08-11
榊 祐介: 検索したら自分のブログだった乙orz '08-11
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ