我想在页面顶部的任何地方创建一个登录字段,所以我添加了一个:
在application.html.erb中:
<%= render :partial => 'sessions/new' %>
in ... / views / sessions / _new.html.erb
<%= form_tag do %>
<div>
<label for="name">Email :</label>
<%= text_field_tag :name, params[:name] %>
<label for="password">Mot de passe :</label>
<%= password_field_tag :password, params[:password] %>
</div>
<div>
<%= submit_tag "Connection" %>
</div>
</fieldset>
但是当我在浏览器中测试它时,它只能在会话控制器中工作, 我认为:
<%= submit_tag "Connection" %>
指的是他当前的控制器(会话),这就是为什么它在广告/索引中不起作用,而是在会话/索引中完成它的工作。
我该怎么办? 我是否必须在submit_tag中指定控制器?
非常感谢:)
答案 0 :(得分:0)
您需要告诉表单标记表单应提交的URL。也许默认情况下它会提交给当前的动作或什么?无论如何,你都不应该依赖默认值。
阅读api http://railsbrain.com/api/rails-2.3.2/doc/index.html?a=M002551&name=form_tag
哦,顺便说一下提交标签只是一个按钮,它与表单为什么或不起作用没有任何关系。关于表单的rails新手之间存在很多混淆 - 很多人并不真正理解表单是如何工作的。在使用任何rails帮助程序之前,我强烈建议您使用纯HTML格式化表单。通过这种方式,你将了解实际发生的事情,形式助手就是这样,即“帮助你更快地做某事的事情”,而不是当他们不做什么时让你完全无知的这些神奇事物你期待。
答案 1 :(得分:0)
您需要在form_tag
而不是submit_tag
e.g。 <%= form_tag :controller => 'sessions', :action => 'new' %>