【发布时间】:2016-06-13 11:30:49
【问题描述】:
我在我的 create.html.erb 文件中使用 form_tag。在这个 form_tag 下有一个按钮。现在我希望点击按钮后页面只会刷新,我不想重定向到任何地方。那么我应该在表单标签中写什么作为路径呢?
对于会话控制器,我的 view/sessions/create.html.erb 文件是:
<h4>Database contents here:</h4>
<table>
<tr>
<th>ID</th>
<th>AGE</th>
<th>NAME</th>
</tr>
<% @data.each do |data| %>
<tr>
<td><%= data.id %></td>
<td><%= data.age %></td>
<td><%= data.name %></td>
</tr>
<% end %>
</table>
<div>
<%= form_tag :method => :get do %>
<%= button_tag type: 'submit' do %>
<%= content_tag :div do%>
<h4>View Data </h4><h4><%= @num %></h4>
<% end %>
<% end %>
<% end %>
</div>
而我的 contollers/sessions_controller 文件是:
class SessionsController < ApplicationController
def new
end
def index
end
def create
user = User.authenticate(params[:email], params[:password])
@data=Information.all
@num=Information.count()
@tym=Time.now.getutc
if user
session[:user_id] = user.id
#redirect_to root_url, :notice => "Logged in!"
#this part is for showing the content of the information table
respond_to do |format|
format.html
format.xml { render xml: @data }
end
else
flash.now.alert = "Invalid email or password"
render "new"
end
end
def destroy
session[:user_id] = nil
redirect_to root_url, :notice => "Logged out!"
end
end
【问题讨论】:
-
在表单命中的控制器动作中使用redirect_to :back。
-
抱歉 acn 不明白...实际上是 Rails 中的新功能。你能告诉我在哪里写这个吗?
-
当您点击按钮时,它会触发控制器中的任何操作吗?
-
是的,,,它应该显示数据库的内容..
-
如果它遇到控制器动作,那么控制器动作中的 redirect_to :back 应该可以工作
标签: ruby-on-rails forms ruby-on-rails-3 routes