2016-07-23 8 views
0

私の静的ページhome.html.erbには、StaticPagesControllerへの参照があります。私はこれを正しくやっていると信じていますが、まだ未定義のローカル変数またはメソッド `profile 'を取得しています。Ruby on Railsの未定義のローカル変数またはメソッド `profile '

StaticPagesController

class StaticPagesController < ApplicationController 

    def profile 
     redirect_to profile_path(current_user) 
    end 
end 

home.html.erb

<% if logged_in? %> 
    <% profile %> 
<% else %> 
    <h1>Welcome to myProjects</h1> 
    <%= link_to "Sign up!", signup_path, class: "btn btn-lg btn-primary" %> 
<% end %> 

+0

Pragashの答えは右ですが、正確に何をやろうとしていますか? – jonathanrz

答えて

0

def profileをヘルパーメソッドにする必要があるため、このメソッドを表示することができます。ちょうどあなたのdef profile法の下に次の行を追加します。

helper_method :profile 

あなたは、最終的なクラスには、次のようになります。

class StaticPagesController < ApplicationController 

    def profile 
     redirect_to profile_path(current_user) 
    end 

    helper_method :profile 
    end 
0

さて、私はあなたがビューからコントローラ内で定義されたメソッドにアクセスしようとしていると思います。申し訳ありませんが、それは不可能です。 MVCを使用すると、コントローラのメソッドをこのようにトリガすることはできません。理想的には、app/helpers/application_helper.rbまたはapp/helpers/static_pages_helper.rbの下にヘルパーメソッドを定義する必要があります。あなたが行っているようにそれにアクセスしようとすると、あなたが見るエラーが発生します。

関連する問題