【问题标题】:How can I convert this form_tag form into a form_for form in ruby on rails?如何在 ruby​​ on rails 中将此 form_tag 表单转换为 form_for 表单?
【发布时间】:2011-10-30 15:48:39
【问题描述】:

我一直在试图弄清楚如何为我的 passwords_controller 编写这个表单的 form_for 版本。我的 routes.rb 文件中有资源 :passwords 。我查看了我的登录表单,尽管它并没有真正访问模型,但我仍然使用 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 %>

【问题讨论】:

  • 请定义“我不断遇到问题”。另外,发布可以工作的代码是可以的,但也发布不工作的代码会更有用。

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


【解决方案1】:

类似:

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

所以在你的控制器中你应该创建一个@password 对象,可能从params 中填充email,然后渲染这个表单。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    通过研究我的 session_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 助手的第一个参数。

    【讨论】:

      猜你喜欢
      • 2012-12-03
      • 2011-04-13
      • 2020-09-17
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多