Rails:在视图中使用选定的控制器和操作呈现部分视图

3

我有一个Rails应用程序,在home/index.html.erb页面上展示了一个workorders模型的partial。它当前默认为home_controller.rb下的index操作。

我能否选择workorders_controller.rbindex2操作?

我在home/index.html.erb视图文件中尝试过以下代码:

<%= render :partial => "workorders/index7", :controller => "workorders", :action => "index2" %>

但它没有起作用。
1个回答

3
尝试使用以下代码替换原有代码: <%= render :template => "workorders/index2" %> 来源:https://dev59.com/IG025IYBdhLWcg3wW0yx#6051812 编辑:针对你最后一条评论的回应...
我并没有真正使用过bootstrap,但也许你可以尝试类似于以下的伪代码:
def home
  if [x condition] 
    redirect_to index_seven_path
  else
    render :action => [y action]
  end
end

我已经修改了它。但是,它正在运行控制器“home”中的操作“index”,而不是控制器“workorders”中的操作“index7”。 - Reddirt
这很奇怪 - 它是否到达了这个请求?也许它在到达此处之前被重定向到home#index了? - dax
它正在显示 workorders/index7.html.erb 视图。我将其从 _index7.html.erb(一个局部视图)更改过来。但是,它没有执行 workorders_controller.rb 中的 index7 操作。相反,它正在执行 home_controller.rb 中的 index 操作。 - Reddirt
如果我使用这个URL http://localhost:5000/workorders/index7,那么它会执行workorders控制器中的index7操作。但是,我希望它显示在主页上而不是单独的页面上。 - Reddirt
你能否将 http://localhost:5000/workorders/index7 设为命名路由并在需要时调用它(比如说 redirect_to index_seven_path)?index7 动作是否总是会被调用,还是有条件的? - dax
我正在使用Bootstrap,并在第一个选项卡中呈现页面index7,另一个页面index8呈现在第二个选项卡中。 - Reddirt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接