在我的静态页面home.html.erb中,我有一个StaticPagesController的引用。我相信我正确地做了这个,但仍然得到未定义的局部变量或方法`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 :(得分:0)
我认为您正在尝试从视图中访问控制器中定义的方法。对不起,但是,这是不可能的。使用MVC,您无法像这样触发控制器中的方法。理想情况下,您应该在app / helpers / application_helper.rb或app / helpers / static_pages_helper.rb下定义一个帮助方法。试图以你的方式访问它会导致你看到的错误。
答案 1 :(得分:0)
您需要将def profile
作为辅助方法,因此可以使用此方法进行查看。只需在def profile
方法下方添加以下一行:
helper_method :profile
你的最后一堂课将如下所示:
class StaticPagesController < ApplicationController
def profile
redirect_to profile_path(current_user)
end
helper_method :profile
end