【问题标题】:jQuery Mobile Form Handling in RailsRails 中的 jQuery Mobile 表单处理
【发布时间】:2011-05-30 07:22:00
【问题描述】:

我创建了一个用于创建“用户”模型的 jQuery Mobile 表单。该表单正确地回发了所有信息,但是我不确定如何处理相应控制器的操作中的成功和失败情况。我通常会使用:

# POST /user
def create
  @user = User.create(params[:user])

  respond_to do |format|
    format.mobile { @user.valid? ? redirect_to(root_url) : render(action: 'new') }
  end
end

然而,这会导致 jQuery Mobile 中出现奇怪的动画(即出现错误时将屏幕滑出)。任何想法我应该如何呈现错误?

谢谢!

【问题讨论】:

    标签: jquery ruby-on-rails jquery-mobile


    【解决方案1】:

    我不了解手机,但是如果这基本上是一个ajax请求,那么你需要在出现问题时返回@user.errors.to_json。如果它只是一个普通的页面请求,那么您可以在您的视图中迭代 @user.errors 以显示您想要的错误。

    我也不建议使用 ? : format.mobile 块内的运算符。在respond_to 和您的各个格式块之外执行if 语句,这样您就不必使用? : 运算符一遍又一遍地添加更多格式块。如果你有 3 个格式块,你会有 3 个 ? : 语句,而不仅仅是 1 个 if。

    如果您只打算使用一种格式,您可以在create 操作内使用respond_with,然后在控制器顶部使用respond_to :mobile。您应该默认执行此操作,因为它可以正常工作并清理您的控制器操作。

    另外,您不想立即致电User.create。您应该使用User.new,然后在您的主要if 语句中调用@user.save,以确定如何处理错误。这消除了@user.valid? 的调用,我认为更符合习惯用法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      相关资源
      最近更新 更多