Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 新手:根据对象访问条件呈现不同的视图和布局_Ruby On Rails 3_View_Ruby On Rails 3.1 - Fatal编程技术网

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部分下的渲染似乎打破了这一点。