1

Listing_statusという属性のステータスをアクティブから終了に変更しようとしています。このように試してみましたが、動作しません。私が間違っていることについて何か考えはありますか?

<%=link_to("Terminate", listing_path(listing, :listing_status => "Terminated"), :method => :put, :confirm => "Are you sure you want to TERMINATE this listing?", :class => 'btn btn-danger')%>

コントローラー更新アクションのリスト

def update  
@listing = Listing.find(params[:id])

respond_to do |format|
  if @listing.update_attributes(params[:listing])
    if @listing.listing_status == "Active"
        @listing.sold.destroy if @listing.sold
    end 
    flash[:notice] = 'house was successfully updated'
    format.html { redirect_to :action=> "show" }
    format.json { head :no_content }
  else
    format.html { render action: "edit" }
    format.json { render json: @listing.errors, status: :unprocessable_entity }
  end
end

終わり

4

1 に答える 1

1

ステータスを として渡していますがparams[:listing_status]、リスティングを で更新しようとしていparams[:listing]ます。その名前のパラメーターがないため、更新は行われません。

おそらく、予想されるパラメーター形式に合わせてリンクを変更する必要があります。

<%= link_to("Terminate", 
  listings_path(listing, 'listing[listing_status]' => "Terminated"),
  :method => :put, :confirm => "Are you sure you want to TERMINATE this listing?", 
  :class => 'btn btn-danger') %>
于 2013-03-15T20:11:57.337 に答える