如何将此form_tag表单转换为ruby on rails中的form_for表单?

时间:2011-10-30 15:48:39

标签: ruby-on-rails ruby ruby-on-rails-3 rubygems ruby-on-rails-3.1

我一直在试图弄清楚如何为我的passwords_controller编写此表单的form_for版本。我有资源:我的routes.rb文件中的密码。我查看了我的登录表单,即使它没有真正访问模型,我仍然使用form_for并且它有效。我尝试了同样的事情而且我一直在遇到问题所以我正在使用下面的代码并且它正在运行,但我真的想知道我做错了什么?

<%= form_tag passwords_path, :method => :post do %>
  <div id="#emailFieldJoin">
    <%= text_field_tag :email, params[:email], :placeholder => "Email" %>
  </div>
  <div class="actions"><%= submit_tag "Reset Password" %></div>
<% end %>

2 个答案:

答案 0 :(得分:0)

类似的东西:

<%= form_for @password do |f| %>
  <div id="#emailFieldJoin">
    <%= f.text_field :email %>
  </div>
  <div class="actions"><%= f.submit "Reset Password" %></div>
<% end %>

因此,在您的控制器中,您应该创建一个@password对象,可能会填充email中的params,然后呈现此表单。

希望这有帮助。

答案 1 :(得分:0)

通过研究我的sessions_controller和相关的视图文件来计算出来。

基本上:

  <%= form_for :password_reset, :url => passwords_path do |f| %>
  <%= f.text_field :email, :placeholder => "Email" %>      
  <%= f.submit "Reset Password", :disable_with => 'Log In'%>
  <% end %>

第一个参数是您选择的符号。

我使用params [:password_reset] [:email]从我的密码控制器中查看这些参数。 所以重要的是传递给form_for帮助器的第一个参数。