Я использую Ruby on Rails 3, и я хотел бы использовать URL в файлах представления почтовых программ с пространствами имен и пользовательских действий .Я прочитал это , но у меня все еще есть проблемы с его реализацией.
В routes.rb
У меня есть:
namespace "users" do
resources :accounts do
member do
get 'my_action_name'
post 'my_action_name'
end
end
end
В users_mailer.rb
У меня есть:
class Users::Accounts < ActionMailer::Base
default_url_options[:host] = "test_name_site.com"
def account_delete(account)
@account = account
@action_url = users_account_url(:controller => "users/accounts", :action => "my_action_name")
...
end
end
Когда в контроллере я пытаюсь сделать это:
@account = Users::Account.find(params[:id])
Users::Accounts.account_delete(Users::Account.find_by_id(@account.id)).deliver
Я получаю эту ошибку:
ActionController::RoutingError (No route matches {:action=>"my_action_name", :controller=>"users/accounts"})
Как я могу решить эту проблему?
В users_mailer.rb
Я пробовал также
# the difference is: from 'users_account_url' to 'users_accounts_url'
@action_url = users_accounts_url(:controller => "users/account_authentications", :action => "confirm_account_authentication_delete")
# the difference is: from 'users_account_url' to 'url_for'
@action_url = url_for(:controller => "users/account_authentications", :action => "confirm_account_authentication_delete")
, но это не работает.