我是Rails编程的新手,需要一些创建路线的帮助。
我有一个视图,列出了一个表中的一组字段,我有一个按钮,用户可以单击该按钮来填充当前时间。
例如,在我看来 /apps/views/patients/index.html.erb
姓氏名字行动
史密斯乔[CheckIn]
在我的按钮代码中我有
<%= button_to "CheckIn", :action => "set_checkintime" %>
在我的控制器中,我有以下方法
def set_checkintime
self.checkedin = Time.now
end
当我加载页面时,rails会抛出错误 没有路线匹配{:action =&gt;“set_checkintime”,:controller =&gt;“病人”}
我知道我需要在routes.rb文件中创建一个路由,但我不知道如何正确地执行此操作。期望的行为是用户点击“签入”按钮并更新数据库的“已签入”字段,但我不会移动到新页面。
答案 0 :(得分:2)
首先你需要在routes.rb中添加一个路由,我推断这是一个帖子。
例如:
put "set_checkintime" => "patients#set_checkintime"
您的按钮将是:
<%= button_to "CheckIn", :action => "set_checkintime", :method => :put %>
好的,如果单击按钮栏就可以了,那么会将你的用户重定向到文件set_checkintime.html.erb,你应该拥有它。
要保持同一页面,您需要拨打ajax电话。在rails中你可以使用:remote =&gt;是的,保持在同一页面。在控制器中,您需要回复js ...只需查看此example。
答案 1 :(得分:0)
在routes.rb
添加
resources :patients do
member do
put 'set_checkintime'
end
end