2011-07-28 16 views
5

非常に簡単な質問に対する解決策を見つけることができません。 「formtasticで自分の入力フィールドを定義するにはどうすればよいですか?formtasticでカスタム入力フィールドを追加しますか?

これは私が得たものである:

<%= semantic_form_for @someFantasticVariable, :url => "/someFantasticUrl.html" do |f|%> 
    <%= f.inputs do %> 
     <%= f.input :something_else_id, :required => true , :as => :select, :collection => SomethingElse.find(:all), :label =>"The something else"%> 
     <%= f.input :fantastic_max_cost, :label => "Budget (max cost)"%> 
    <%end%> 


    <%= f.buttons do%> 
     <%= f.commit_button :button_html => { :class => "primary", :disable_with =>  'Processing...', :id => "commitButton"}%> 
    <%end%> 
<%end%> 

..

私は非常に単純なものを持っていると思います。私は、モデルの一部ではないフィールドを広告したいです。私は私のコントローラの中のいくつかのものを計算するのに使うことができる日付フィールドを持っています。

<%= f.inputs do %> 
    <%= f.input :something_else_id, :required => true , :as => :select, :collection => SomethingElse.find(:all), :label =>"The something else"%> 
    <%= f.input :fantastic_max_cost, :label => "Budget (max cost)"%> 
    <%= f.input :start_date, :as => :date , :label => "Start date"%> 
<%end%> 

をしかしapparetly、私は許さないよ、と私は私の突きつけたグーグルを介してこれを行うにはどのような方法を見つけることができません。だから私はこれをしたいです。どんな助けやアイデア?

def start_date 
end 

def start_date=(arg) 
end 

が次にあなたが欲しい、コントローラまたは任意のあなたのスタッフを計算することができます:あなたは、モデルの一部ではない、いくつかの属性を持っている場合は

答えて

6

、その後、ゲッターとセッターは、モデル上に存在する必要があります。

... 
puts params[:somefantasticvariable][:start_date] 
... 

しかし、これは速いformtasticハックです、あなたには、いくつかのより良い方法を見つける必要があり、非formtastic入力のようないくつかのCSSなどと

+0

私が本当にしたい私は、フォームを送信するときだけ追加のパラメータです。しかし、これがトリックをするかどうかはわかります。 – Automatico

+0

それは働いた:)しかしそれはハックのように感じる。 formtasticがモデルの一部ではないフィールドを追加する簡単な方法を持っていればいいでしょう。私が言ったように。フォームを送信するときにパラメータが必要なだけなので、実際にはモデルには属しません。しかしこれは今のところうまくいく。ありがとう:) – Automatico

+1

"あなたのモデルの一部ではないいくつかの属性がある場合、ゲッターとセッターがモデルに存在するはずです。" –

1

RubyはデータベースレスCAを構築を提供あなたはattr_accessorを見つけました。 setterメソッドとgetterメソッドを記述するのと同じです。 Formtasticはこの属性をデータベースに基づく属性と同様に見ます。

attr_accessor :start_date 

あなた@someFantasticVariableモデルでattr_accessibleを使用している場合は、あまりにもそこstart_date変数を追加してください:

attr_accessible :start_date 

を属性がタイプレス、Formtasticですので、あなたの@someFantasticVariableモデルで

使用するHTML入力フィールドを派生させることはできません。 :asを使用して入力タイプを手動で設定する必要があります。あなたの例:

<%= f.input :start_date, :as => :date_select %> 

シテ:

関連する問題