【问题标题】:Update on form is redirecting to wrong route表单更新重定向到错误的路线
【发布时间】:2015-08-06 11:19:44
【问题描述】:

我创建了一个名为 admin 的控制器,并使用它来控制登录等...我在控制器中定义了“更新”和“编辑”,但是当我保存时,它会重定向并出现错误。有人可以提供帮助吗?看了一上午还是搞不定!似乎要添加一个 .保存时而不是斜线。我确实有一个补丁路由,但不知道为什么它不起作用。

错误

No route matches [PATCH] "/admin.5"

admin_controller

def edit
 @admin = Admin.find(params[:id])
end

def update
  @admin = Admin.find(params[:id])
  if @admin.update_attributes(admin_params)
  flash[:success] = "Admin profile updated"
  redirect_to '/administration'
  else
    flash[:error] = "Unable to update account\n#{admin.errors.messages}"
    render 'edit'
  end
end

edit.html.erb

        <%= form_for @admin do |f| %>

          <form class="m-t" role="form" action="#">
            <div class="form-group">
                      <%= f.label :name %>
                      <%= f.text_field :name, class: 'form-control' %>
                    </div>
                    <div class="form-group">
                      <%= f.label :email %>
                      <%= f.text_field :email, class: 'form-control' %>
                    </div>
                    <div class="form-group">
                      <%= f.label :user_name %>
                      <%= f.text_field :user_name, class: 'form-control' %>
                    </div>
                    <div class="form-group">
                      <%= f.label :password %>
                      <%= f.password_field :password, class: 'form-control' %>
                    </div>
                    <div class="form-group">
                      <%= f.label :password_confirmation %>
                      <%= f.password_field :password_confirmation, class: 'form-control' %>
                    </div>
                    <div class="form-group">
                      <%= f.label :avatar %>
                      <%= f.file_field :avatar, class: 'form-control' %>
                    </div>
                    <div class="form-group">
                      <%= f.submit "Submit", class: "btn btn-primary block full-width m-b" %>
                    </div>
                </form>

            <% end %>

【问题讨论】:

  • 尝试使用 Rails form_for 而不是 HTML 表单。
  • 请出示您的routes.rb 和rake routes。
  • 谢谢,我再次检查了路线,似乎添加了一条流氓路线,阻止了这个!

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

问题只是一个自定义路由导致 resources :admin 无法正常工作

【讨论】:

    【解决方案2】:

    在您的控制器更新更改/管理中:

    redirect_to @admin
    

    【讨论】:

      【解决方案3】:

      旁注: 在您的 edit.html.erb 表单中,将 f.text_field :email 更改为 f.email_field :email。在移动设备上,这将使键盘在底部出现“@”符号作为快捷方式。

      【讨论】:

        猜你喜欢
        • 2017-10-11
        • 2021-12-17
        • 1970-01-01
        • 2015-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多