Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4 如何使用URL参数呈现模板&;正确地锚定_Ruby On Rails 4_View_Rendering_Render - Fatal编程技术网

Ruby on rails 4 如何使用URL参数呈现模板&;正确地锚定

Ruby on rails 4 如何使用URL参数呈现模板&;正确地锚定,ruby-on-rails-4,view,rendering,render,Ruby On Rails 4,View,Rendering,Render,在控制器中,我需要为另一个控制器/动作对呈现模板。基本上,我有一个RequestController,它创建了一个create操作,将工作传递给另一个控制器来处理付款。如果付款未通过,则需要将用户带回create模板重试 复杂的是,我不能只呈现create模板,因为用户建议的表单位于页面底部,通常是隐藏的。我需要在页面底部(锚)呈现模板,并使用一个URL变量指示表单不应隐藏(show=true) 大概是这样的: render "staticpages/#{params[:page_name]}?

在控制器中,我需要为另一个控制器/动作对呈现模板。基本上,我有一个
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"

但那也没用,有什么想法吗

当我必须更改控制器上的布局时,我喜欢做的是:

class UserController < ApplicationController
  layout :choose_layout
  ... 
  def choose_layout
    if condition
      'layout/a'
    else
      'layout/b'
    end
  end
end
class UserController

这样,当条件满足时,我可以根据@sjaime的注释更改布局,render不能接受这样的变量,这要容易得多。。。我只是不知道,哈哈

我所做的一切都准备好了

@error = true
render "staticpages/#{params[:page_name]}"
然后在视图中,使用JS:

if ('<%= @error =>' === 'true' ) {
  // show something
  // scroll to something
}
if(''=='true'){
//展示一些东西
//滚动到某物
}

在我写答案之前,我想问几个问题。尝试以下操作:在控制器a中创建一个
create.js.erb
文件,创建操作将在其中进行。然后在该控制器内部,另一个控制器的视图执行如下操作:
{:'class'=>'displayLink'},:remote=>true%>
,然后从控制器呈现视图A@Observer对不起,你能再说一遍吗?我有点迷路了…@james如果你发布控制器动作的完整代码,那将非常有用
render
不会接受任何URL参数或锚定,因此您需要以不同的方式执行此操作。为什么要尝试在放置在“staticpages”目录中的文件中执行动态操作?