14章でインストラクタが対応するビューテンプレートなしでコントローラにアクションを作成し、「テンプレートがありません」というエラーが表示されたときにインストーラが正しく動作します。あなたの助けを借りてその問題に至っている人は誰でも感謝します。Lynda Ruby on Rails 4の必須トレーニングが動作しない
エラー:テンプレートが見つかりません テンプレートアクセスがありません/ {{locale => [:en]、:formats => [ :html]、:variants => []、:ハンドラ=> [: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"
"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ビデオのインストラクターは、「試行ログオン」のテンプレートを作成しません。彼は単にそれを既存のコントローラに追加するだけです。 –