javascript - 在重定向到新 View 时保留 Rails 验证中的错误消息?

标签 javascript ruby-on-rails

我正在使用模式中的验证来检查错误。工作正常,并显示错误消息(我使用调试器来确认这一点)。现在对我来说最棘手的部分来了。

现在,当验证失败时,我在代码中执行此操作:

  def create
    checked_segment_topics = params[:checked_segment_topics].split(",")
    @menu = Menu.create_menu(checked_segment_topics, menuparams)
    if @menu ==  true
      redirect_to menus_path
    else
      redirect_to newmenu_path
    end
  end

因为我正在重定向到新 View ,所以不会显示错误消息。我尝试渲染,问题是它将 UUID 附加到表单的 id 上。因此我的 javascript 代码失败了。在提交表单之前,我必须找到表单 ID 来进行一些计算。

我的routes.rb文件的相关部分在这里:

get    '/menus'               => 'menus#index'
get    '/newmenu'             => 'menus#new'
resources :menus,     only: [:new, :create, :edit, :update, :destroy]

有人可以引导我走向正确的方向吗?

最佳答案

实例变量不会在请求中持续存在。因此,如果您也不想为此使用 session ,那么我能想到的其他方法是将它们存储在数据库中而不运行验证。

def create
  # some logic to build @menu

  @menu.save(validate: false)

  # some logic for redirection
end

然后,在所需的操作中获取它们并对其运行验证。

def new
  # some logic to fecth @menu

  @menu.valid?

  # some logic to render @menu
end

关于javascript - 在重定向到新 View 时保留 Rails 验证中的错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38703640/

相关文章:

javascript - 默认选择值不显示在 vue 中

javascript - 如何在没有新 key 的情况下更新现有父级的一个 Firebase 子级?

javascript - 如何与node.js同时支持api和web界面数据交互?

ruby-on-rails - Assets 编译由于内存不足而失败,现在无法ssh进入服务器

ruby-on-rails - CanCan::AccessDenied with factory_girl 和 cancan,如何正确编写工厂?

jquery - Rails 从 javascript 删除链接调用

ruby-on-rails - 在 Rails 中更改一周的第一天

javascript - 磁摆力计算与数值积分

javascript - Play Framework - 在函数中定义我的 Javascript 文件

javascript - 实现 Rails Frontend 轮询来调用更新