一个快速的Rails问题,我希望你们的帮助。一直在四处寻找答案,对于我认为解决方案而言,更复杂的一面似乎有所不同。我有两个页面使用模型(用户)和每个页面上的表单,在保存时更新不同的属性。
更新密码详细信息(验证是否存在密码)
更新测验的响应(验证最多300个字符)
如何进行条件验证,以便在我提交表单时,验证会显示在各自的页面上?我需要两个单独的动作吗?如何将这些操作链接到表单提交?
以下是通用更新操作和表单:
用户控制器
def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
flash[:success] = "All is updated"
sign_in @user
redirect_to @user
else
render 'edit'
end
end
表格
<p><h3>Linked-In Optimization</h3></p>
<%= form_for(@user) do |form| %>
<p><%= form.label :linkedin, 'Please copy and paste your Linked-In profile here (575 chars max.)' %></p>
<p><%= form.text_area :linkedin %></p>
<%= form.submit 'Save' %>
<img class="linkedin" src="/linkedin.png">
<% end %>
答案 0 :(得分:0)
为了简化操作,请使用两个单独的控制器操作。
要将表单提交链接到新路径,请执行此操作
<%= form_for(@user, :url => update_password_user_path(@user)) do |f| %>
如果您在模型中添加了必要的验证,则错误消息将显示在您的相应表单上。