В главе 14 инструктор создает действие на контроллере без соответствующего шаблона представления, и он работает правильно, пока я получаю сообщение об ошибке «Отсутствующий шаблон». Кто-нибудь еще, кто получил то, что касается этой проблемы, приветствуется. (Извините, если мне не хватает ожидаемых элементов, первый раз размещаю здесь.)Lynda Ruby on Rails 4 важная подготовка не работает
Ошибка: отсутствует шаблон Отсутствует доступ к шаблону/try_login, application/try_login с {: locale => [: en],: formats => [ : html],: variantants => [],: handlers => [: erb,: builder,: raw,: ruby]}. Поиск: * "/ var/www/html/railsLdapTest/app/views" * "/usr/local/rvm/gems/ruby-2.1.8/gems/devise-4.0.0/app/views"
View, который называет "attempt_login":
<% @page_title = "Admin Login" %>
<div class="login">
<%= form_tag(:action => 'attempt_login') do %>
<table>
<tr>
<td><%= label_tag(:username) %></td>
<td><%= text_field_tag(:username) %></td>
</tr>
<tr>
<td><%= label_tag(:password) %></td>
<td><%= password_field_tag(:password) %></td>
</tr>
<tr>
<td> </td>
<td><%= submit_tag("Log In") %></td>
</tr>
</table>
<% end %>
</div>
Линды код действия:
def attempt_login
if params[:username].present? && params[:password].present?
found_user = AdminUser.where(:username => params[:username]).first
if found_user
authorized_user = found_user.authenticate(params[:password])
end
end
if authorized_user
# mark user as logged in
session[:user_id] = authorized_user.id
session[:username] = authorized_user.username
flash[:notice] = "You are now logged in."
redirect_to(:action => 'index')
else
flash[:notice] = "Invalid username/password combination."
redirect_to(:action => 'login')
end
end
Мой код изменен, чтобы подключиться к базе данных с помощью LDAP:
def attempt_login
if params[:username].present? && params[:password].present?
ldap = Net::LDAP.new
ldap.host = '172.16.15.3'
ldap.port = 389
ldap.auth params[:username], params[:password]
if ldap.bind
ldap.search(
base: "DC=abc,DC=net",
filter: Net::LDAP::Filter.eq("mail", params[:username] + "@abc.net"),
attributes: [ 'objectGUID','cn', 'telephoneNumber' ],
return_result:true
) do |entry|
@var1 = entry.telephoneNumber
authorized_user = entry.cn
end
if authorized_user
# mark user as logged in
session[:user_id] = authorized_user
session[:username] = authorized_user
flash[:notice] = "You are now logged in."
redirect_to(:action => 'index')
else
flash[:notice] = "Invalid username/password combination."
redirect_to(:action => 'login')
end
end
end
end
Вы должны хотя бы включить код для частей, которые не работают. – Iceman
Похоже, проблема исходит из ваших взглядов (нет шаблона). Не видя приложения, действительно нет способа узнать наверняка, но я бы проверял, имеет ли ссылка на ваш шаблон правильный синтаксис и путь. – the12
@ the12 Инструктор по видео Lynda не создает шаблон для 'try_login'. Он просто добавляет его к существующему контроллеру. –