が入力されました。私が作業しているイベントコントローラ内で開始時刻と終了日を保持する時間を使用しています。しかし、私のアプリケーションは、ブラウザと私のRspecテストの両方で、テスト環境と開発環境の両方でTime情報を提出することを怠っています。時間が作成されているようですが、これに関する私のテストで何が戻ってくるのかは、一貫して2000年1月1日午前12時です。Railsアプリのタイムフィールドに、2000年1月1日の午前12時00分
誰でも問題の特定に役立つことができますか?
次のテストは別の理由で失敗しています(このビットは心配しないでください)が、問題の程度を示しています。テストで提出されたend_timeは2000年1月1日12:00 AMではありませんでした。
Failures:
1) EventsController GET show when signed in if an end date/time (optional fields) have been supplied display for a multi-day event shows an end date
Failure/Error: response.should have_selector("span", :class => "end_time_date", expected following output to contain a Saturday, 01 January 2000 tag:
... [div class="start"] Starts: Saturday, 01 January 2000 at 12:00 AM [/div] [div class="end"] Ends [span class="end_time_time"] 12:00 AM [/span] [/div]
上記の失敗のテスト:
describe "display for a multi-day event" do before(:each) do # Turn example event into one that spans multiple days. @event.end_time.advance(:days => 2) end it "shows an end date" do get :show, :id => @event @human_friendly_end_date = @event.end_time.strftime("%A, %d %B %Y") response.should have_selector("span", :class => "end_time_date", :content => @human_friendly_end_date) end it "shows an end time" do get :show, :id => @event @human_friendly_end_time = @event.end_time.strftime("%I:%M %p") response.should have_selector("span", :class => "end_time_time", :content => @human_friendly_end_time) end end
あなたがのstart_timeとend_timeの属性は非常にアクセスし、必要な(この時点ではSTART_DATEの場合)している見ることができるモデル:同じ問題は、ブラウザ内で起こっているので
class Event < ActiveRecord::Base
belongs_to :user
attr_accessible :name, :description, :start_time, :end_time,
:max_attendees, :min_attendees, :event_type_id
validates :name, :presence => true, :length => { :minimum => 4, :maximum => 140 }
validates :description, :length => { :minimum => 4, :maximum => 1000 }
validates :start_time, :presence => true
#validates :end_time, :presence => true
validates :user_id, :presence => true
end
FactoryGirlイベントの発生は無関係なようだが、私はあまりにも念のためにそのここに含まれます。あなたは日付/時刻の作成のために数字をハードコーディングしようとしていることを(この中のコメントされたビットから)見ることができます。しかし、これは何も修正されませんでした。
Factory.define :event do |event|
event.name "Foo bar"
event.description "Yada yada"
event.association :user
week_num = (rand(10) +1)
day_num = (1+rand(30))
hour_num = (1+rand(12))
hours_duration_num = (1+rand(4))
future_date = week_num.weeks.from_now
#event.start_time "2012,8,5,6"
#event.end_time "2012,8,5,7"
event.start_time "#{future_date.year},#{future_date.month},#{day_num},#{hour_num}"
event.end_time "#{future_date.year},#{future_date.month},#{day_num},#{hour_num+hours_duration_num}"
end
マイ移行:
class CreateEvents < ActiveRecord::Migration
def self.up
create_table :events do |t| #foreign key first t.references :event_type t.integer :user_id t.string :name, :null => false t.text :description, :null => false t.time :start_time, :null => false t.time "end_time" t.timestamps end
Naaaargh!何が起こっているの?
に、ユーザは、開始/終了時刻を設定することができますフォームは次のように何を見ていますか? –
私はまだコントローラのその部分については何もしていません。 rspecテストを介して設定するだけで、showアクションを取得することをテストします。 – Reb
あなたのフィクスチャでこれらの時間を設定する方法は奇妙です - "2012,8,5,6"は有効な日付形式ではありません - 私はあなたが明らかに真夜中であるデフォルトのTime値を取得していると思います –