Problema con namespace resources y formulario No route matches [PATCH]

17 views
Skip to first unread message

josedes

unread,
Aug 2, 2015, 10:36:07 PM8/2/15
to rubysur
Ayuda por favor, cualquier que tenga unos minutos de ayudarme.

estoy usando este namespace en routes:

namespace :administrator do
  resources :faqs
  end

Cuando cargo el formulario para edit, lo carga bien, de echo muestra los datos que estoy escogiendo para modificar, pero cuando hago submit me dice:

No route matches [PATCH] "/administrator/faqs"


La acción de new/create funciona bien.

La salida de rake routes es:
 administrator_faqs        GET    /administrator/faqs(.:format)          administrator/faqs#index
                                      POST   /administrator/faqs(.:format)          administrator/faqs#create
 new_administrator_faq GET    /administrator/faqs/new(.:format)      administrator/faqs#new
 edit_administrator_faq GET    /administrator/faqs/:id/edit(.:format) administrator/faqs#edit
         administrator_faq GET    /administrator/faqs/:id(.:format)      administrator/faqs#show
                                      PATCH  /administrator/faqs/:id(.:format)      administrator/faqs#update
                                      PUT    /administrator/faqs/:id(.:format)      administrator/faqs#update
                                      DELETE /administrator/faqs/:id(.:format)      administrator/faqs#destroy


El controlador que está en controllers/administrator/faqs_controller.rb es el siguiente:

class Administrator::FaqsController < ApplicationController
layout "administrator"

  def index
       @faqs = Faq.all.order('pregunta asc')
  end

  def show
    @faq = Faq.find(params[:id])
  end

  def new
    @faq = Faq.new
  end

  def edit
    @faq = Faq.find( params[:id] )
  end

  def create
    @faq = Faq.new(faq_params)
    @faq.usuario_id = current_usuario.id
    respond_to do |format|
      if @faq.save
        format.html { redirect_to administrator_faq_path(@faq), notice: 'La pregunta fue creada exitosamente' }
        format.json { render :show, status: :created, location: @faq }
      else
        format.html { render :new }
        format.json { render json: @faq.errors, status: :unprocessable_entity }
      end
    end
  end

  def update
    respond_to do |format|
      if @faq.update(faq_params)
        format.html {redirect_to administrator_faq_path(@faq), notice: 'La pregunta fue modificada exitosamente' }
        format.json { render :show, status: :ok, location: @faq }
      else
        format.html { render :edit }
        format.json { render json: @faq.errors, status: :unprocessable_entity }
      end
    end
  end

  def destroy
    @faq.destroy
    respond_to do |format|
      format.html { redirect_to faq_url, notice: 'La pregunta fue exitosamente eliminada.' }
      format.json { head :no_content }
    end
  end

  private
    def set_faq
      @faq = Faq.find(params[:id])
    end

     def faq_params
      params.require(:faq).permit(:pregunta, :respuesta)
  end
end

Y mi vista que está en views/administrator/faqs/edit.html.erb es:

             <%= simple_form_for(@faq, url: administrator_faqs_path) do |f| %>
                       <%#= f.error_notification %>
                        <% if @faq.errors.any? %>
                        <div class="alert alert-danger">
                        <div class="error_explanation">
                          <ul>
                            <% @faq.errors.each do |attr,msg| %>
                            <li><%= "#{msg}" if @faq.errors[attr].first == msg %> </li>
                           <% end %>
                          </ul>                       
                        </div>
                      </div>
                      <% end %>
                       <%= f.input :pregunta, label: 'Pregunta', placeholder: "Coloque la pregunta", wrapper_html: { class: 'username' } %>   
                           <%= f.input :respuesta, as: :text, label: 'Respuesta', placeholder: "Coloque la respuesta", :input_html => {:rows => 10} %>   
                       <div class="form-actions" align="center">
                              <%= f.button :submit, "Modificar pregunta" , :class=> "btn btn-primary" %>
                        </div>
                    <% end %>

Agradezco muchisimo la ayuda.

José

Angel Mauricio Pino Gonzalez

unread,
Aug 3, 2015, 9:15:36 AM8/3/15
to rub...@googlegroups.com
Creo que la URL deberia llevar como parámetro @faq, yo no he usado simpre_form, pero no bastaría con @fac en el form?

<%= simple_form_for(@faq) do |f| %>

--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Angel Mauricio Pino G
AngelMauricio...@gmail.com
fono: 32-273 30 50
movil 96-436 63 48

Jose De Sousa

unread,
Aug 3, 2015, 10:08:12 AM8/3/15
to rubysur
Gracias por responder Angel,

No puedo colocar @faq por que estoy usando un namespace por que quiero que algunos recursos esten en administrator


OtusNet ©
Soluciones inteligentes
@ sus necesidades en Internet
Joselito De Sousa
(058)-0412.222.98.25
Reply all
Reply to author
Forward
0 new messages