2012-04-18 9 views
0

をレンダリングしようとしたとき、私は、このHAMLファイルがあります:それは私のapp/views/mobile/sessions/new.haml.html路中に配置されているルビー - エラー工夫のログインフォーム

= content_for :page_title do 
    = t :page_title_login 
= content_for :primary_content do 
    #login_box 
    .span6 
     #traditional-login 
     %hgroup 
      %h3= t :heading_account_login 
     = render "devise/sessions/form" 

    .span4 

= content_for :before_closing_body_tag do 
    configure_login_form(#{request.xhr?.to_s.downcase}); 

を。

それは、このエラーを与える:

Showing /Users/alexgenadinik/projects/cmply/cmply-app/app/views/devise/sessions/_form.html.haml where line #1 raised: 

undefined local variable or method `resource' for #<#<Class:0x148213358>:0x14820dac0> 

が、私はこの行をコメントアウト:

= render "devise/sessions/form" 

それがページをレンダリングするが、実際のフォームなし。だから私はその行が必要だと思う、私はちょうどエラーを取得せずにその行を追加する方法がわからないです。ここで

は私のコントローラです:

class Mobile::SessionsController < ApplicationController 
    def create 
    redirect_to home 

    end 

    def new 
    redirect_to home 
    end 
end 

私が間違っているかもしれないものの任意のアイデア?

ありがとうございます!

+0

注 - セッションコントローラを作成しようとする前に、少なくともログインが機能していました。私は自分のmobile/sessions/new.html.hamlを削除しましたが、少なくとも作成コントローラが作成されていないというエラーが出ました。その後、コントローラを作成しましたが、新しいエラーが発生しましたが、少なくともモバイル/セッション用のnew.html.hamlを削除するのは正しい手順でした。 – GeekedOut

+0

あなたのコントローラと_formファイルを投稿できますか? –

+0

@ArthurNevesこんにちはアーサー、私はちょうど私のコントローラを投稿しました。どの_formファイルを意味しましたか?私はmobile/regisrations/new.html.hamlも持っています - それは多分でしょうか? – GeekedOut

答えて

1

部分的なフォームは、見つからないローカル変数resourceを使用します。

レンダリングコールにその変数を渡す必要があります。

= render "devise/sessions/form", :locals => {:resource => resource} 

その他の変数が不足している可能性があります。私のnew.html.hamlには、resource_namedevise_mappingも記載されています。多分、あなたはあまりにもそれらのvarsを渡す必要があります。

rendering partialsのドキュメントをご覧ください。

ところで、あなたのHAMLは- content_forではなく、= content_forでなければなりません。なぜなら、これはコントロールコールであるからです。

+0

@Lass thanks ..あなたのdeviseディレクトリの下にあるnew.html.hamlファイルについて話していますか?または、devisereディレクトリを使用する必要がある外部のもの? – GeekedOut

+0

私がapp/views/mobile/sessions/new.html.hamlを追加すると、ブラウザでこのエラーが発生します。NameError in Mobile :: SessionsController#new 未定義のローカル変数またはメソッド# :SessionsController:0x14916aae0> – GeekedOut

+0

はい、HAMLのコメントは 'app/views/mobile/sessions/new.haml.html'です。 あなたが得る_home_エラーは、間違っていると思われる 'recirect_to home'があるためです。 'routes.rb'ファイルに_home_という名前のルートがある場合は、おそらく' redirect_to home_path'のようなものです。私はあなたが達成しようとしていることを私がかなり理解していないことを認めなければならないが。あなたは同時に複数の状況を記述しているようです。 – Laas