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 尝试将_链接到partials后出错_Ruby On Rails 3_Partial Views_Uninitialized Constant - Fatal编程技术网

Ruby on rails 3 尝试将_链接到partials后出错

Ruby on rails 3 尝试将_链接到partials后出错,ruby-on-rails-3,partial-views,uninitialized-constant,Ruby On Rails 3,Partial Views,Uninitialized Constant,以此为指导,我尝试在容器上方创建一个ul导航标题,单击该标题可呈现容器内的部分内容。(希望这有点道理,但可能并不重要。)在单击分部的链接之前,我会让它在默认情况下呈现分部 但是,当我点击我的链接到以希望呈现部分时,我得到以下错误: uninitialized constant ProfileController 我使用的是Rails 3。这是我的相关代码: 档案控制器: def show_about @is_on_show_about = true end def show_info

以此为指导,我尝试在容器上方创建一个
ul
导航标题,单击该标题可呈现容器内的部分内容。(希望这有点道理,但可能并不重要。)在单击分部的链接之前,我会让它在默认情况下呈现分部

但是,当我点击我的
链接到
以希望呈现部分时,我得到以下错误:

uninitialized constant ProfileController
我使用的是Rails 3。这是我的相关代码:

档案控制器:

def show_about
  @is_on_show_about = true
end

def show_info
  @is_on_show_info = true
end
<div id="info">
  <div id="infoContainer">
    <% if @is_on_show_about %>
      <%= render :partial => 'show_about' %>
    <% elsif @is_on_show_info %>
      <%= render :partial => 'show_info' %>
    <% end %>
    <ul id="info">
      <li>
        <%= link_to 'About', show_about_path, :remote => true %>
      </li>
    </ul>
    <ul id="settingsLinks">
      <li><a href="#">Advice</a></li>
      <li>
        <%= link_to 'Info', show_info_path, :remote => true %>
      </li>
    </ul>
  </div>
  <%= render :partial => 'show_about' %>
map.show_info 'profiles/:id/info', :controller => 'profile', :action => 'show_info'
map.show_about 'profiles/:id/about', :controller => 'profile', :action => 'show_about'
views/profiles/show.html.erb:

def show_about
  @is_on_show_about = true
end

def show_info
  @is_on_show_info = true
end
<div id="info">
  <div id="infoContainer">
    <% if @is_on_show_about %>
      <%= render :partial => 'show_about' %>
    <% elsif @is_on_show_info %>
      <%= render :partial => 'show_info' %>
    <% end %>
    <ul id="info">
      <li>
        <%= link_to 'About', show_about_path, :remote => true %>
      </li>
    </ul>
    <ul id="settingsLinks">
      <li><a href="#">Advice</a></li>
      <li>
        <%= link_to 'Info', show_info_path, :remote => true %>
      </li>
    </ul>
  </div>
  <%= render :partial => 'show_about' %>
map.show_info 'profiles/:id/info', :controller => 'profile', :action => 'show_info'
map.show_about 'profiles/:id/about', :controller => 'profile', :action => 'show_about'

有人能帮我解决这个问题并解释出哪里出了问题吗?

您的两条路线都不正确


如果您的控制器确实命名为
ProfilesController
(复数),那么您的路由应该使用
:controller=>“profiles”
,而不是
:controller=>“profile”

您的配置文件控制器实际名为
ProfileController
,位于“app/controllers/profile\u controller.rb”中吗,对不起,那是个打字错误。它是ProfilesController,位于“app/controllers/profiles\u controller.rb”中。我会解决上面的问题。啊。谢谢然而,现在我得到了一个新的错误:
缺少模板概要文件/show_about with{:locale=>[:en,:en],:formats=>[:html],:handlers=>[:erb,:rjs,:rhtml,:rxml,:builder]}在视图路径中“/Users/me/Desktop/myapp/app/views”,“/Users/me/Desktop/myapp/vendor/plugins/app/views”
显然您没有名为
profiles/show\u about
的文件。你到底想在这里干什么?渲染分部不需要路由/操作,分部不是这样的。您是否试图让这两个操作都呈现
显示
模板?如果是这样,则必须显式调用
render'show'
,因为模板与操作的名称不匹配。我真的不知道你想完成什么,但是你的
渲染:部分
行和你的控制器操作在它们当前的形式下没有意义。看看你链接到的问题,我可以看出问题所在-你在复制他完全向后破坏的代码。无论你想做什么,不要把这个问题当作参考。我想做的是根据点击的链接呈现配置文件数据。所以我有两种类型的数据:“关于”和“信息”。我只想根据我点击的链接加载数据。目标是让它像“选项卡”一样工作,但使用部分来存储实际数据。然后在每个操作的末尾添加
render'show'
。您最好将共享代码放到一个部分中,然后从
show_info.html.erb
show_about.html.erb
模板中呈现它。partials的全部意义在于它包含了可重用的东西,而不是只在一个地方使用的东西。