如何为在rails中执行帖子的按钮创建路由

时间:2014-02-26 17:34:35

标签: ruby-on-rails

我是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文件中创建一个路由,但我不知道如何正确地执行此操作。期望的行为是用户点击“签入”按钮并更新数据库的“已签入”字段,但我不会移动到新页面。

2 个答案:

答案 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