【发布时间】:2014-12-22 04:40:24
【问题描述】:
在控制器中,我需要为另一个控制器/动作对呈现模板。基本上发生的事情是我有一个RequestController 和它创建的create 操作,将工作传递给另一个控制器来处理付款。如果支付不成功,需要将用户带回create模板重试。
复杂之处在于我不能只渲染create 模板,因为用户建议的表单位于页面底部并且通常是隐藏的。我需要在页面底部(锚点)呈现模板,并使用一个 URL 变量指示不应隐藏表单(show=true)。
类似这样的:
render "staticpages/#{params[:page_name]}?show=true#rent"
问题是当我这样做时,我得到了错误:
Missing template staticpages/outdoors?show=true#rent
所以我尝试像这样传递必要的变量:
render "staticpages/#{params[:page_name]}", anchor: "rent", show: "true"
但这也没有用,有什么想法吗?
【问题讨论】:
-
在写答案之前我想问几个问题。尝试这样的事情:在控制器 A 中创建一个
create.js.erb文件,其中执行创建操作。然后在那个其他控制器的视图里面做这样的事情:<%= link_to "", purchase_path, :data => { :'class' => 'displayLink' }, :remote => true %>然后从控制器 A 渲染视图 -
@Observer 对不起,你能再说一遍吗?我有点迷路了……
-
@james 如果您发布所涉及的控制器操作的完整代码,那将非常有用。
render不会接受任何 URL 参数或锚点,因此您需要以不同的方式进行。 -
你为什么要在“staticpages”目录下的文件中做一些动态的事情?
标签: ruby-on-rails-4 view rendering render