我想在页面顶部的任何地方创建一个登录字段,所以我添加了一个:
在application.html.erb中:
<%= render :partial => 'sessions/new' %>在.../views/session/_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" %>指的是他当前的控制器(会话),这就是为什么它不能在ads/index中工作,而能在session/index中工作的原因。
我能做些什么?我必须在submit_tag中指定控制器吗?
非常感谢:)
发布于 2010-06-04 22:45:34
您需要告诉表单标签表单应该提交到的url。也许在默认情况下,它会提交给当前操作或其他什么?无论默认值是什么,你都不应该依赖它。
请阅读http://railsbrain.com/api/rails-2.3.2/doc/index.html?a=M002551&name=form_tag接口
哦,顺便说一句,提交标签只是一个按钮,它与表单工作或不工作的原因没有任何关系。rails新手对表单有很多困惑--很多人并不真正了解表单是如何工作的。在使用任何rails助手之前,我强烈建议您使用纯html格式的表单。这样你就会明白实际发生了什么,表单助手就是这样,即“帮助你更快地做一些事情”,而不是这些神奇的东西,当它们没有做你期望的事情时,它们会让你完全不知道。
发布于 2010-06-04 22:46:31
您需要在form_tag上指定控制器,而不是在submit_tag上
例如<%= form_tag :controller => 'sessions', :action => 'new' %>
https://stackoverflow.com/questions/2975140
复制相似问题