2017-02-01 59 views
1

Как совместить лицензионный ключ с задачей рейка и выдавать ошибку, если ключ является неправильным при регистрации.как добавить задачу rake в dev.org в файле registration.erb, чтобы соответствовать текстовому значению

#sign up form  
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
     <%= devise_error_messages! %> 

     <div class="field"> 
     <%= f.label :email %><br /> 
     <%= f.text_field :email, required: true %> 
     </div> 

     <div class="field"> 
      <%= f.label :username %><br /> 
      <%= f.text_field :username %> 
     </div> 

     <div class="field"> 
      <%= f.label :licensekey %><br /> 
     </div> 

     <div class="field"> 
      <%= f.label :contactno %><br /> 
      <%= f.text_field :contactno %> 
     </div> 

     <div class="field"> 
     <%= f.label :password %> 
     <% if @minimum_password_length %> 
     <em>(<%= @minimum_password_length %> characters minimum)</em> 
     <% end %><br /> 
      <%= f.password_field :password, maxlength:14, required: true, pattern:'[a-zA-Z0-9]' %> 
     </div> 

     <div class="field"> 
     <%= f.label :password_confirmation %><br /> 
     <%= f.password_field :password_confirmation, autocomplete: "off" %> 
     </div> 

     <div class="actions"> 
     <%= f.submit "Sign up" %> 
     </div> 
    <% end %> 

    <%= render "devise/shared/links" %> 

Вот Rake задача Im пытается определить

require 'rake' 
task :new => :environment do 
    dump_key = "P1000FFSEJZHGRDUR1CSU73A" 
end 
+1

Вам нужно, чтобы это была задача рейка по определенной причине? –

+0

Я не вижу необходимости выполнять грабли, проверьте мой ответ ниже, я добавил вариант, если вы все равно хотите запустить команду rake в контроллере. – SsouLlesS

ответ

0

Посмотрите вам не нужно, чтобы создать реки задачу для этого.

Я буду предполагать, что licensekey - это атрибут пользователя, который вы уже определили correctly с помощью Devise.

Затем вы можете переопределить Devise registration_controller.rb и выполнить проверку.

#registration_controller.rb 
class RegistrationsController < Devise::RegistrationsController 
    def create 
     #HERE YOU CAN PERFORM YOUR VALIDATION 
    end 
end 

Однако я бы рекомендовал выполнить проверку на уровне модели, а не уровне контроллера, а также выполнять задачи Rake в контроллер не является хорошей практикой. Если вы не знаете, как переопределить устройство create проверка действий this нить.

обновление

В случае, если вы все еще хотите, чтобы запустить проверку из задачи грабли, то вы можете запустить грабли задачу в рамках create действия Вашего контроллера DEViSE с: %x[rake name_task] заменить name_task с именем вашей задачи.

 Смежные вопросы

  • Нет связанных вопросов^_^