【发布时间】:2016-04-18 21:37:49
【问题描述】:
所以过了一段时间,有点头疼。我能够使Rails 版本化的表单正常工作。虽然我能够让它工作,但我不知道这是否是最佳做法,因为它感觉有点不对劲。我有一个网站,上面有一个用于在登录页面上注册的表格。登陆页面是static_pages#home。我为我的用户控制器 _new.html.erb 创建了一个部分,它已包含在我的登录页面中。这是我的表格:
<!-- Main Form -->
<div class="login-form-1">
<!-- <form id="register-form" class="text-left"> -->
<div class="login-form-main-message"></div>
<div class="main-login-form">
<div class="login-group">
<%= form_for(@user) do |f| %>
<div class="form-group">
<%= f.text_field :first_name, :class => "form-control", :placeholder => "First Name" %>
</div>
<div class="form-group">
<%= f.text_field :last_name, :class => "form-control", :placeholder => "Last Name" %>
</div>
<div class="form-group">
<%= f.text_field :user_name, :class => "form-control", :placeholder => "User Name" %>
</div>
<div class="form-group">
<%= f.email_field :email, :class => "form-control", :placeholder => "Email" %>
</div>
</div>
<button class="login-button"><%= f.submit "", :class => "remove-button" %></button>
<% end %>
</div>
<div class="etc-login-form">
<p>already have an account? <a href="#">login here</a></p>
</div>
<!-- </form> -->
</div>
<!-- end:Main Form -->
这有点乱,因为我添加了很多样式。需要注意的是我如何呈现form_for。我已将@user 的对象传递给它。通常这个@user 可以在Users#new 动作中找到;然而,让这个表单正常运行的唯一方法是让Static_pages#home 通过设置@user = User.new 来处理它。这样做似乎不正确,但是,我似乎找不到更好的解决方法。最初,我要做的就是在提交时拥有此表单,点击Users#create 操作。我试过传递form_for (:user, :users, "/users"),但是当我尝试这个时,它会尝试触发Static_pages#create 动作。
总而言之,我的问题围绕着这是否是处理此问题的正确方法,如果不是,那将是更合适的方法。同样,我能够让它工作,但这是通过每次访问我的登录页面 Static_pages#home 时设置 @user = User.new 来实现的。感谢您花时间回答这个问题。
【问题讨论】:
标签: ruby-on-rails ruby forms model-view-controller