У меня проблемы с тем, что Heroku не играет в мяч и выдает мне эту ошибку
ActionController::RoutingError (No route matches [POST] "/auth/identity/register"):
У меня работает следующее в dev.
model / user.rb
class User < OmniAuth::Identity::Models::ActiveRecord
has_many :services
controllers / users_controller.rb
def new
@user = env['omniauth.identity'] || User.new
end
users / new.html.erb
<%= simple_form_for @user, url: "/auth/identity/register" do |f| %><fieldset>
<legend><%= controller.action_name.capitalize %> User</legend>
<%= f.input :name, input_html: { name: "name" } %>
<%= f.input :email, input_html: { name: "email" } %>
<%= f.input :password, input_html: { name: "password" } %>
<%= f.input :password_confirmation, input_html: { name: "password_confirmation" } %>
<div class="form-actions">
<%= f.button :submit %>
<%= link_to 'Cancel', users_path, :class => 'btn' %>
</div></fieldset><% end %>
rout.rb
match "/auth/:service/callback" => 'services#create'
match "/auth/failure" => 'services#failure'
resources :users
Это все работаетИдеально на моей машине, но Heroku это не нравится.environment / development.rb и production.rb - значения по умолчанию, созданные с помощью "rails new ..." со следующим добавлением: -
Rails.application.config.middleware.use OmniAuth::Builder do
require 'openid/store/filesystem'
provider :identity, fields: [:name, :email],
model: User,
on_failed_registration: lambda { |env|
UsersController.action(:new).call(env)
}
# generic openid
provider :open_id, :store => OpenID::Store::Filesystem.new('./tmp'), :name => 'openid'end
Надеюсь, что все это имеет смысл, и кто-то имеет ответ.Любая и вся помощь очень ценится.
С уважением