2015-02-06 26 views
1

环境:重定向不工作,因为我在Rails中很期待

Rails: 3.2.12 
Ruby: ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux] 

在我的routes.rb,我有:

match '/attendance', to: "attendance#attendance_dashboard" 
match '/check_in', to: "attendance#check_in" 

在我attendance_controller.rb,我有:

def attendance_dashboard 
    @registered_and_not_checked_in = get_registered_and_not_checked_in() 
end 

def check_in 
    logger.info("Email: #{params["party"]["email"]}") 
    redirect_to attendance_url 
end 

当我对myapp/attendance进行操作时,它的行为应该像它应该的那样,并显示一个表格,每行中的最后一个字段是出席联系人的链接troller的check_in动作和params包括哈希派对。

当我点击链接,我404具体来说,这里的test.log中所说的话(该记录信息是要确保我没有轰炸,直到重定向):

Processing by AttendanceController#check_in as HTML 
    Parameters: {"party"=>{"email"=>"[email protected]", "event_id"=>"3", "first"=>"Rrr", "last"=>"Rrrrr", "payment"=>"0.0", "transaction_id"=>""}} 
    [1m[35mBlogPost Load (0.4ms)[0m SELECT `blog_posts`.* FROM `blog_posts` 
    [1m[36mUser Load (0.4ms)[0m [1mSELECT `users`.* FROM `users` WHERE `users`.`id` = 2 LIMIT 1[0m 
Email: [email protected] 
Completed 404 Not Found in 5ms 

我也尝试以下重定向语法:

redirect_to attendance_path 

我错过了什么?

路线:

这是耙路线的输出:

  /attendance(.:format) attendance#attendance_dashboard 
check_in  /check_in(.:format) attendance#check_in 

注意,不像CHECK_IN,没有“路径”,即使在routes.rb中的语法是相同的

+1

'rake routes'的输出是什么?出席率是否显示为路线? – alephtwo 2015-02-06 20:27:36

+0

看我的编辑。我不明白为什么出席和check_in之间的路线产生的方式有所不同。请注意,根据我最初的问题,我可以做my_app /考勤,它将我带到正确的地方 – EastsideDeveloper 2015-02-06 20:40:22

回答

3

你应该在你的路线文件中有这个:

match '/attendance', to: "attendance#attendance_dashboard", :as => :attendance 
match '/check_in', to: "attendance#check_in", :as => :check_in 
+0

这工作。我仍然不明白为什么这条路线适用于check_in,但不适合出席 – EastsideDeveloper 2015-02-06 21:52:46