次のモデル検証があります
validates_presence_of :enddate
validates_presence_of :startdate
これが投稿されているものです
Parameters: {"utf8"=>"✓", "authenticity_token"=>"QczhHQoDU7a0/WKnUnLlzQ9Aob/NQOj1naiwfOYIW1c=",
"billsanddeposit"=>{"name"=>"Test Bill Item",
"itemcategory_id"=>"2", "repeatsevery"=>"2", "startdate"=>"01/24/2013", "enddate"=>"01/31/2013",
"deposit"=>"0", "amount"=>"100"}, "commit"=>"Create Billsanddeposit"}
そして、これらは現れているエラーです
Enddate can't be blank
Startdate can't be blank
これらはデータベースの日時フィールドであり、スキャフォールディングが元々フォームを作成したとき、date_selectがありました。これをjquerydatepickerを含むtext_fieldに変更しました。上記のように値が投稿されているのを確認できたとしても、表示されていないことを示す上記のエラーが発生します。
これがモデル全体です
class Billsanddeposit < ActiveRecord::Base
attr_accessible :amount, :bankaccount_id, :deposit, :enddate, :itemcategory_id, :name, :repeatsevery, :repeattype_id, :startdate
validates_presence_of :amount
validates_presence_of :bankaccount_id
validates_presence_of :itemcategory_id
validates_presence_of :enddate
validates_presence_of :name
validates_presence_of :repeatsevery
validates_presence_of :repeattype_id
validates_presence_of :startdate
belongs_to :bankaccount
belongs_to :repeattype
belongs_to :itemcategory
has_many :ledgeritems
end
これまでに行ったのは、関係と検証を追加することだけです。
これがコントローラーです。ほぼ完全にデフォルトです
def create
@billsanddeposit = Billsanddeposit.new(params[:billsanddeposit])
respond_to do |format|
if @billsanddeposit.save
@billsanddeposits = Billsanddeposit.joins(:bankaccount).where("bankaccounts.user_id = ?", current_user.id)
@billsanddeposit = Billsanddeposit.new
format.html { redirect_to @billsanddeposit, :notice => 'Billsanddeposit was successfully created.' }
format.json { render :json => @billsanddeposit, :status => :created, :location => @billsanddeposit }
else
@billsanddeposits = Billsanddeposit.joins(:bankaccount).where("bankaccounts.user_id = ?", current_user.id)
format.html { render :action => "index" }
format.json { render :json => @billsanddeposit.errors, :status => :unprocessable_entity }
end
end
end