Estoy tratando de crear una página de Usuario show
(que funcionará como una página de perfil) pero estoy confundido acerca de cómo hacer esto con Devise. No parece que Devise tenga algún tipo de definición de show
, ¿hay alguna forma de que pueda acceder a los controladores que Devise está implementando para poder crear uno o debo anularlos?Creando una página de muestra `Users` utilizando Devise
Respuesta
Debe generar una users_controller
que hereda de application_controller
y definir allí su método personalizado show
. No te olvides de crear una vista y rutas para ello. Ex:
#users_controller.rb
def show
@user = User.find(params[:id])
end
#in your view
<%= @user.name %>
#routes.rb
match 'users/:id' => 'users#show', via: :get
# or
get 'users/:id' => 'users#show'
# or
resources :users, only: [:show]
puede generar las vistas utilizadas por el dispositivo, por lo que puede cambiarlo como desee.
rails g devise:views
pero todavía no hay una página de presentación para los usuarios. solo páginas nuevas y de edición. –
mala respuesta, lea primero la pregunta, parece que no ha funcionado con el dispositivo antes de – SsouLlesS
'rails g idear: views' genera las vistas para new y edit. No mostrar página Pruebe el código y vea sus rutas, no hay espectáculo. –
No olvide que las rutas de los usuarios deben estar por debajo de las rutas usuarios devise_for, así:
#routes.rb
devise_for :users
resources :users, :only => [:show]
Además, si está utilizando un nombre de usuario o un correo electrónico como la principal clave en lugar del ID de costumbre, se debe evitar conflictos de enrutamiento al declarar sus rutas de la siguiente manera:
#routes.rb
devise_for :users, :path_prefix => 'd'
resources :users, :only => [:show]
que muestran CURRENT_USER/otro_usuario perfiles con legado:
After installing devise
Crear un controlador de usuarios:
rails generate controller Users
continuación, crear una acción show y encontrar el usuario con id params:
def show
@user = User.find(params[:id])
end
Crear un archivo show.html.erb en el usuario Ver carpeta:
<%= @user.email %>
Enlazando con los usuarios Mostrar la página:
<%= link_to "current_user_show", current_user %>
Ahora bien, si desea ver otros perfiles de crear una acción de índice en el controlador de los usuarios:
def index @users = User.all end
Crear index.html.erb en la carpeta de vista del usuario a continuación:
<% @users.each do |user| %>
<%= link_to user.username, user %>
<%= user.email %>
<% end %>
El enlace para esto será:
<%= link_to "show_index_of_users", users_path %>
Esto le vinculará al archivo de los usuarios index.html.erb no va a crear un lazo y un enlace a los usuarios de perfil:
<% @users.each do |user| %>
<%= link_to user.username, user %>
<%= user.email %>
<% end %>
Esto debería funcionar!
No hay necesidad de configurar/rutas? –
- 1. Devise/Rails: No coincide la ruta [GET] "/ users/sign_out"
- 2. creando una página web para iphone
- 3. Rails 3.0.9 + Devise + Cucumber + Capybara el infame "Ninguna ruta coincide/users/sign_out"
- 4. Página que muestra el código de muestra
- 5. WordPress - creando automáticamente la página
- 6. Devise. Registro e inicio de sesión en la misma página
- 7. Selenio: compruebe si se muestra una imagen en la página
- 8. Android WebView muestra una página en blanco
- 9. Redireccionar lazo con Devise after_sign_in_path_for
- 10. Rails/Devise - Creando nuevos usuarios a través de la solicitud json
- 11. Respuesta XML personalizada para la falla de autenticación utilizando Devise
- 12. Devise: New Errors (Encrytable)
- 13. Eclipse para IntelliJ Idea Users
- 14. Devise + Subdominio - Redirigir usuario para sign_in
- 15. Devise Invitable: constante no inicializada
- 16. Creando una Radio Web
- 17. Creando una apk RESTful simple
- 18. Si esta página muestra esta otra muestra esta
- 19. Swing: ¿creando un JScrollPane que muestra su componente centrado?
- 20. Cómo usar Devise: rememberable?
- 21. Redirecting Devise After Sign Out
- 22. foo.com/alice vs. foo.com/users/alice
- 23. muestra todos los resultados en una sola página (gema kaminari)
- 24. cancan skip_authorization_check para autenticación Devise
- 25. El servidor WAMP muestra una página en blanco
- 26. Muestra condicional fila utilizando JSF Datatable
- 27. creando cuadro de texto multilínea utilizando la función Html.Helper
- 28. Averigüe si Android WebView muestra la página en caché
- 29. Forzar una actualización de la página utilizando Javascript en Firefox
- 30. Rails & Devise: Anular SessionsController
Así que he hecho todo eso, acabo de cambiar 'show' por' index', lo que hizo que '@users = Users.all' pero obtengo este error: constante no inicializada UsersController :: Users. Encontré mi error, debería ser '@users = @ User.all' – tcatchy
Una vez que hago esto, ¿cómo puedo vincularme a un perfil de usuarios específico y tenerlo abierto/accesible sin haber iniciado sesión? ¡Gracias! – westman2222
El código de arriba hará que el usuario muestre (perfil) página accesible sin iniciar sesión –