• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

272
Vistas
Rails 4: alternar un valor booleano con link_to

Me gustaría hacer un enlace para cambiar un valor booleano por ajax.

En primer lugar, probé este tutorial , pero no funcionó tan bien para Rails 4.

Desearía que alguien pudiera arrojar luz sobre las mejores prácticas para hacer que funcione.

Actualmente tengo el siguiente código.

 #ROUTE scope 'admin', :module => "admin" do resources :users do collection do put 'toggle/', :action => :toggle_approve end end end #CONTROLLER def toggle_approve @user = User.find(params[:id]) @user.toggle!(:approved) render :nothing => true end <!-- VIEW --> <% @users.each do |u| %> <tr class="gradeA"> <td><%= u.name %> <%= u.last_name %></td> <td><%= u.country %></td> <td><%= u.created_at.strftime("%d/%m/%Y - %H:%M") %></td> <td> <%= link_to '<i class="fa fa-pencil"></i>'.html_safe, edit_user_path(u), class: 'btn btn-icon-toggle', "data-toggle "=> "tooltip", "data-placement" => "top", "data-original-title" => "Edit User" %> <%= link_to '<i class="fa fa-trash-o"></i>'.html_safe, url_for(:controller => "users", action: :destroy, id: u.id), method: :delete, data: {confirm: "Are you sure?"}, class: 'btn btn-icon-toggle', "data-toggle "=> "tooltip", "data-placement" => "top", "data-original-title" =>"Delete" %> <%= link_to "approve", toggle_users_path(u), :remote => true %> </td> </tr> <% end %>

La ruta toggle_users_path(u) devuelve usuarios/alternar.2 en lugar de usuarios/alternar/2

Alguien tiene una mejor manera de usar el control remoto: ¿verdad para que funcione de la mejor manera?

¡Gracias!

over 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No ha configurado una ruta que acepte una id en la URL, por lo que la interpreta como el marcador de posición del format (de ahí el .2 en la URL, que generalmente se reserva para un formato como json , pdf o csv ).

En su lugar, la ruta debería verse así, basándose en el member en lugar de collection :

 resources :users do member do put 'toggle', :action => :toggle_approve end end

Eso colgará el patrón de la id del usuario, así:

 /users/:user_id/toggle

Entonces intente esto en su opinión:

 <%= link_to "approve", toggle_user_path(u), :method => :put, :remote => true %>

Como puede ver, también debe publicarlo junto con un método de put para alcanzar su put final de colocación.

over 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda