Ruby on rails 3 新手:根据对象访问条件呈现不同的视图和布局
我正在尝试根据条件渲染视图+布局。以下代码似乎正常工作,但无法访问前面设置的Ruby on rails 3 新手:根据对象访问条件呈现不同的视图和布局,ruby-on-rails-3,view,ruby-on-rails-3.1,Ruby On Rails 3,View,Ruby On Rails 3.1,我正在尝试根据条件渲染视图+布局。以下代码似乎正常工作,但无法访问前面设置的@objects。我在profilescoontroller方法Show中调用此代码 @profiles = Profile.where(:user_id => current_user.id).first if @profile.nil? == true render :view => "show", :layout => "application" else
@objects
。我在profilescoontroller
方法Show中调用此代码
@profiles = Profile.where(:user_id => current_user.id).first
if @profile.nil? == true
render :view => "show",
:layout => "application"
else
render :template => "profiles/my_profile",
:layout => "profiles"
end
给出输出:
undefined method `profiles' for nil:NilClass
如何基于一个条件进行渲染,并且仍然保留以前设置的
@objects
(在这种情况下,访问@profiles
)在视图中设置布局不是一个好办法,它不是轨道,即使可能也没有建议这样做。我在“控制器操作”中更改了设置布局,并在“显示部分”中呈现了正确的代码,从而完全解决了问题。错误在于您正在对nil
对象调用方法.profiles
。您应该在跟踪中有行号。它是什么对象,在哪里初始化?因为@profile对象是空的,所以在else部分下的渲染似乎打破了这一点。