【问题标题】:Rails render partial with data from params in controllerRails 使用控制器中参数的数据进行部分渲染
【发布时间】:2014-12-29 18:39:25
【问题描述】:

我正在尝试从控制器渲染一个部分(ajax 请求到渲染部分的控制器,以便 JS 可以插入 DOM)。

部分代码很简单。它需要一个对象

查看

= render "partials/foo", object: @bar

部分

= object.name

从视图中可以正常工作。但是当我从控制器尝试这个(传递params作为对象)我得到错误undefined variable object

控制器

render "partials/foo", object: params[:data]

params[:data] 只是一个hash

【问题讨论】:

    标签: ruby-on-rails ajax


    【解决方案1】:

    小心:object,因为它会期望一个与部分同名的变量(减去下划线)。您可以使用:as 选项重命名变量。

    如果您设置render partial: "foo", object: @foo,您将在部分中有一个变量foo

    render partial: "foo", locals: { foo: @foo }


    您可以使用:locals,这样您就可以在您的部分中设置对象的哈希值。假设params[:data] 是一个哈希:

    params[:data] = {a: 'something', b: 'another thing'}
    render "partials/foo", locals: params[:data]
    

    在您的部分中,您将能够使用变量ab


    或者,如果params[:data] 有一个简单的值,您可以定义自己的变量:

    params[:data] = 'something'
    render "partials/foo", my_variable: params[:data]
    

    在您的部分中,您将能够使用my_variable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2014-08-19
      • 2016-12-09
      • 2014-11-02
      • 2012-07-20
      • 2014-01-12
      • 1970-01-01
      相关资源
      最近更新 更多