0

私のviews/devise/sessions/new.erb.htmlファイルには、次の行があります

> <%= form_for(resource, :as => resource_name, :url =>
> session_path(resource_name), :html => { :class => "form-horizontal
> well"}) do |f| %>

これは問題なく機能しますが、このフォームをホームページに配置しようとすると、エラーが発生します...

undefined local variable or method `resource' for #<#<Class:0x2950e78>:0x563118>

これを機能させるにはどうすればよいですか? または、これに関するDeviseのドキュメントはありますか?

4

2 に答える 2

1

Devise は、認証するオブジェクトに対して少し不可知論的なアプローチを採用しています。これは、routes ファイルでresourceを使用して定義したマッピングの単なるプロキシです。devise_forとはいえ、リソースの名前がす​​でにわかっている場合は、手動で指定できます。

<%= form_for("user", :url => user_session_path, :html => { :class => "form-horizontal well"}) do |f|%>

または、リンクしたドキュメントに示されているように、コントローラー内でそれぞれresourceのメソッドとメソッドを単純に定義することもできます。resource_name

于 2013-01-23T18:32:50.787 に答える
0

また、Devise ヘルパー メソッドを controller_helper.rb に追加することもできます。ホームコントローラーの場合は、application_helper.rb だと思います。

例はこちら

于 2013-01-24T21:58:07.927 に答える