У меня есть регистрация, где я хочу отправить пользователю электронную почту. Однако у меня есть вложенный атрибут, в котором пользователь принадлежит компании.UrlGenerationError missing required keys [: id]
ошибка:
CompaniesSignupTest#test_valid_signup_information:
ActionView::Template::Error: No route matches {:action=>"edit", :controller=>"account_activations", :email=>"[email protected]", :id=>nil} missing required keys: [:id]
Сейчас это работает:
def create
log_in @company.users.first
redirect_to root_path
end
Однако, когда я пытаюсь отправить по электронной почте:
def create
UserMailer.account_activation(@company.users.first).deliver_now
redirect_to root_url
end
я получаю сообщение об ошибке, где он говорит, что это может» t найти идентификатор. Который я нахожу странным, так как он может найти идентификатор в журнале, но не здесь.
Вот параметры запроса:
"company"=>{"users_attributes"=>{"0"=>{"first_name"=>"eorkge",
"last_name"=>"okerogkeogk",
"email"=>"[email protected]",
"password"=>"[FILTERED]"}},
"name"=>"oekgoekg"},
"commit"=>"Create Company"}
и маршрут:
<%= link_to "Activate account", edit_account_activation_url(@user.activation_token,
email: @user.email) %>
и отправители/user_mailer:
def account_activation(user)
@user = user
mail to: user.email, subject: "Account activation"
end
маршруты:
resources :account_activations, only: [:edit]
результаты пучка exec rake routes | Grep account_activation
edit_account_activation GET /account_activations/:id/edit(.:format) account_activations#edit
примечание: когда я проверяю просмотр почтовик я могу заставить его работать. Это делает URL в текстовом так:
http://localhost:3000/account_activations/qsdBBow-dcKI00Jf3awu5Q/edit?email=demo%40demo.com
и метод user_mailer_preview является:
def account_activation
user = User.first
user.activation_token = User.new_token
UserMailer.account_activation(user)
end
Не могли бы вы поделиться запись из файла маршрутов для 'edit_account_activation_url' маршрут? – polarblau
сделано, я пошел и обновился! –
Спасибо! Вы пытались передать идентификатор явно? - 'edit_account_activation_url (id: @ user.activation_token, email: @ user.email)' – polarblau