rails not method gema función for español ejemplos cuál could ruby-on-rails devise

ruby on rails - not - Ruby/Rails: ¿Cómo personalizas las plantillas de mailing de Devise?



devise rails español (4)

He instalado Devise para mi aplicación Rails (3.0.1) y funciona principalmente. Simplemente no puedo personalizar las vistas de correo .

  • Mi modelo de usuario es "Usuario".
  • Los controladores de diseño (que necesitaba anular para poder decirles a los controladores qué archivo de diseño usar) están en la app/controllers/users/ , como lo hacen las app/controllers/users/sessions_controller.rb
  • Las vistas de diseño (que he editado) están en app/views/users/ like so app/views/users/registrations/new.html.haml
  • Aquí está la parte de diseño de mi archivo de rutas:

devise_for :users, :controllers => { :sessions => "users/sessions", :registrations => "users/registrations", :passwords => "users/passwords", :confirmations => "users/confirmations", :unlocks => "users/unlocks" } do get "/login" => "devise/sessions#new" get "/logout" => "devise/sessions#destroy" end

Todo lo de arriba funciona, al menos. Sin embargo, al enviar correo, las plantillas que Devise parece usar no son las que he editado en app/views/users/mailer/ . El dispositivo todavía parece recuperar el predeterminado (como si nunca hubiera editado los archivos). Supongo que Devise todavía usa los archivos en la gema.

En caso de que ayude, aquí está el error de Cucumber:

Feature: Manage accounts In order to manage accounts users should be able to signup # By default, www.example.com is the host when testing. # This is a problem because when our site searches for the domain example.com, it cant find any. # Therefore we must either set our testing domain to one of our choosing (and mention that in the routes), or create a domain example.com # I prefer the first option. Scenario: Signing up and resetting the password # features/manage_accounts.feature:10 Given I am on the login page # features/step_definitions/web_steps.rb:19 When I follow "Sign up" # features/step_definitions/web_steps.rb:33 And I fill in "Login" with "bobrobcom" # features/step_definitions/web_steps.rb:39 And I fill in "Email" with "[email protected]" # features/step_definitions/web_steps.rb:39 And I fill in "Password" with "123456" # features/step_definitions/web_steps.rb:39 And I fill in "Password confirmation" with "123456" # features/step_definitions/web_steps.rb:39 And I press "Sign up" # features/step_definitions/web_steps.rb:27 Then I should see "Your account has been created. A confirmation was sent to your e-mail." # features/step_definitions/web_steps.rb:107 And I should receive an email # features/step_definitions/email_steps.rb:51 When I open the email # features/step_definitions/email_steps.rb:72 Then I should see "Welcome bobrobcom!" in the email body # features/step_definitions/email_steps.rb:96 expected "<p>Welcome [email protected]!</p>/n/n<p>You can confirm your account through the link below:</p>/n/n<p><a href=/"http://stils.dev/users/confirmation?confirmation_token=d9ZXliqfTArb2cNmwPzL/">Confirm my account</a></p>/n" to include "Welcome bobrobcom!" (RSpec::Expectations::ExpectationNotMetError) ./features/step_definitions/email_steps.rb:97:in `/^(?:I|they) should see "([^"]*?)" in the email body$/'' features/manage_accounts.feature:21:in `Then I should see "Welcome bobrobcom!" in the email body'' When I follow "Confirm my account" # features/step_definitions/web_steps.rb:33 Then I should see "Your account was successfully confirmed. You are now signed in." # features/step_definitions/web_steps.rb:107 When I log out # features/step_definitions/user_steps.rb:9 And I go to the reset password page # features/step_definitions/web_steps.rb:23 And I fill in "Email" with "[email protected]" # features/step_definitions/web_steps.rb:39 And I press "Send me reset password instructions" # features/step_definitions/web_steps.rb:27 Then I should see "You will receive an email with instructions about how to reset your password in a few minutes." # features/step_definitions/web_steps.rb:107 And I should receive an email # features/step_definitions/email_steps.rb:51 When I open the email # features/step_definitions/email_steps.rb:72 Then I should see "Hello bobrobcom!" in the email body # features/step_definitions/email_steps.rb:96 When I follow "Change my password" in the email # features/step_definitions/email_steps.rb:166 Then I should see "Set your new password" # features/step_definitions/web_steps.rb:107 Failing Scenarios: cucumber features/manage_accounts.feature:10 # Scenario: Signing up and resetting the password

Y app / views / users / confirmation_instructions.erb:

<p>Welcome <%= @resource.login %>!</p> <p>You can confirm your account through the link below:</p> <p><%= link_to ''Confirm my account'', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>

Además, si ayuda, aquí están los controladores que he anulado:

| | |~users/ | | | |-confirmations_controller.rb | | | |-passwords_controller.rb | | | |-registrations_controller.rb | | | |-sessions_controller.rb | | | `-unlocks_controller.rb

¿Cómo soluciono este problema?

¡Gracias!


Creo que deberás gestionar los puntos de vista de Devise por ti mismo. Pruebe lo siguiente en una consola:

rails generate devise:views

Esto generará todas las vistas que usa Devise (incluidas las plantillas de correo), que ahora puede personalizar.

Los anuncios publicitarios que está buscando deberían estar en ''app / views / idee / mailer''


Prueba esto:

rails generate devise:views


Para generar vistas por nombre de recurso

rails generate devise:views users

Para generar vistas específicas por módulo de recoverable

rails generate devise:views users -v passwords

Para generar especificar solo vistas de correo

rails generate devise:views users -v mailer

para más detalles generar vistas


según los documentos del inventor

deberías editar tus config / initializers / devise.rb:

config.scoped_views = true

(se comenta por defecto)

Al hacerlo, puede personalizar sus vistas para diferentes modelos, en lugar del diseño global.