-1

一个快速的 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 %>
4

1 回答 1

0

为了简化事情,使用两个单独的控制器动作。

要将您的表单提交链接到新路径,请执行此操作

<%= form_for(@user, :url => update_password_user_path(@user)) do |f| %>

如果您在模型中添加了必要的验证,错误消息将出现在您各自的表单上。

于 2012-09-21T04:37:56.063 回答