【问题标题】:Rails: render partial with selected controller and action in viewRails:在视图中使用选定的控制器和动作渲染部分
【发布时间】:2013-08-19 18:17:18
【问题描述】:

我有一个 Rails 应用程序,在 home 页面 home/index.html.erb 上,我显示了模型 workorders 的部分内容。它目前默认为home_controleer.rb,操作为index

我可以选择workorders_controller.rb 和操作index2吗?

我在home/index.html.erb 视图文件中试过这个:

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

但它不起作用。

【问题讨论】:

    标签: ruby-on-rails templates renderpartial


    【解决方案1】:

    试试这个:

    &lt;%= render :template =&gt; "workorders/index2" %&gt;

    来源:https://stackoverflow.com/a/6051812/2128691

    编辑:回应您的最后评论...

    我还没有真正使用过引导程序,但也许你可以做这样的事情[伪代码]:

    def home
      if [x condition] 
        redirect_to index_seven_path
      else
        render :action => [y action]
      end
    end
    

    【讨论】:

    • 我改了。但是,它在控制器 home 中运行动作 index,而不是在控制器 workorders 中运行动作 index7
    • 这很奇怪——它达到了这个要求吗?也许它在命中之前被重定向到 home#index?
    • 它正在显示workorders/index7.html.erb 视图。我从_index7.html.erb(部分)更改它。但是,它没有执行workorders_controller.rb 中的 index7 操作。相反,它正在执行home_controller.rb 中的index 操作。
    • 如果我使用这个 url http://localhost:5000/workorders/index7 那么它会在 workorders 控制器中执行 index7 操作。但是,我希望它显示在主页上而不是单独的页面上。
    • 你能不能把http://localhost:5000/workorders/index7 命名为路由并在你需要的地方调用它(比如redirect_to index_seven_path)? index7 动作是总是会被调用,还是有条件的?
    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 2013-02-15
    • 2015-04-04
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多