我是Rails的新手,现在正试图在Rails中编写一个小项目。作为这个项目的一部分,我想处理一个表格数据(密码)。我的表格是
<form name="input" action="http://0.0.0.0:3000/submit/" method="get">
Password: <input type="text" name="password" />
<input type="submit" value="Login" />
如果输入的密码正确我想显示另一个html页面,原始密码不存储在数据库中,意味着只想比较一个字符串。我使用'rails generate controller project'创建了一个控制器和视图。我认为密码匹配的代码应该写在'app / controllers'目录下的'project_controller.rb'文件中。但是如何编写密码匹配代码以及如何在'routes.rb'文件中映射网址?如果'get'方法更改为'post',需要进行哪些必要的更改?
答案 0 :(得分:5)
首先,routes.rb是将url映射到控制器上的函数的文件
路由的基本示例就像这里
Foo::Application.routes.draw do
get '/form' => 'project#form'
get '/submit' => 'project#submit'
get '/logedin' => 'project#logedin'
end
我的project_controller.rb中有3个函数映射到函数 您可以通过将“获取”更改为“发布”
来将其更改为发布这是project_controller.rb的示例代码
class ProjectController < ApplicationController
def form
#will render view/project/form.html.erb
end
def submit
if params[:password] == 'secret'
redirect_to '/logedin'
else
#you can redirect to form again
#or render the form again
render 'form' #render the view/project/form.html.erb
end
end
def logedin
render :text => 'you are loged in'
end
端
表单函数将只显示app / view / project / form.html.erb
中的默认视图提交是主要逻辑。您可以使用变量caled params
访问表单数据代码很简单。您可以在导轨http://guides.rubyonrails.org/
上了解详细信息