簡體   English   中英

更新屬性rails-沒有路線匹配[POST]

[英]Update attributes rails - No route matches [POST]

我正在嘗試從根本上更新集成對象屬性“過濾器”。 我有一個集成控制器,這樣做似乎應該采取的適當措施。 但是,當我在填寫文本字段后嘗試保存時,出現此錯誤, No route matches [POST] ,我理解它的意思,但不是更新帖子嗎? 為了清楚起見,這是我的代碼。

控制者

    def update
    @integrations = current_account.integrations.find(params[:id])

    attrs = params.require(:integration).permit(:filters)

    if @integrations.update_attributes(attrs)
      redirect_to account_integration_path
    else
      render :filters
    end
  end

  def filters
    @integrations = current_account.integrations.find(params[:id])
  end

視圖

    <%= form_for @integrations, url: filters_account_integration_path do |f| %>
    <%= f.text_field :filters, class: "tag-autocomplete" %>
    <%= link_to "Save", account_integration_path, method: :post, class: [ "button", "button--modal" ] %>
    <% end %>

路線

   resources :integrations, only: [ :index, :destroy, :update ] do
    get "filters", on: :member
   end

希望有足夠的信息讓我知道是否需要更多? 我的基本問題是為什么這不更新集成對象? 不更新帖子嗎?

resources默認情況下會生成七個路由。 您正在使用它來生成其中的三個。 這三個路線將如下所示:

  • GET /integrations
  • DELETE /integrations/:id
  • PATCH /integrations/:id/edit

另一方面,您的表單正在嘗試使用以下路線:

  • POST /integrations/:id

與任何生成的路線都不匹配。

而是嘗試使用默認的表單助手:

<%= form_for @integrations, url: url_for(:controller => :integrations, :action => :update, :id => @integrations.id) do |f| %>
  <%= f.text_field :filters, class: "tag-autocomplete" %>
  <%= f.submit "Save" %>
<% end %>

假設@integrations是單個Integration資源。 如果不是,那么您將面臨的不僅僅是這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM