在控制器中,我需要为另一个控制器/动作对渲染模板。基本上发生的事情是,我创建了一个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"
但那也不起作用,有什么想法吗?
答案 0 :(得分:0)
当我必须更改控制器上的布局时,我喜欢做的是:
class UserController < ApplicationController
layout :choose_layout
...
def choose_layout
if condition
'layout/a'
else
'layout/b'
end
end
end
这样我可以在条件满足时更改布局
答案 1 :(得分:0)
根据@ sjaime的评论,渲染不能采取这样的变量,这更容易......我只是没有&#39;知道哈哈
我所做的一切都是
@error = true
render "staticpages/#{params[:page_name]}"
然后在视图中,使用JS:
if ('<%= @error =>' === 'true' ) {
// show something
// scroll to something
}