【问题标题】:How best to render different partials in a view in ruby on rails如何在 ruby​​ on rails 的视图中最好地渲染不同的局部
【发布时间】:2017-10-23 08:09:33
【问题描述】:

我对 Rails 很陌生,我还不太清楚应该把东西放在哪里。我有一个视图,其中有几个按钮,每个按钮都会呈现不同的图形或表单,但我不确定将呈现逻辑放在哪里。

到目前为止,我已经考虑了以下几点:

  1. 向我的控制器添加一些方法,这些方法呈现一个 js.erb,将相关图形放在一个空的 div 中。这样做的问题是我的控制器会变得很忙,我认为这与 rails 风格背道而驰。
  2. 有一个链接到按钮 onclick 事件的 javascript 函数,它只是将部分放入 div 中。这样做的问题是,我会将所有预渲染的图表都放在周围,而且看起来很乱。

【问题讨论】:

  • 控制器中有很多动作没有错。你必须避免的事情是有动作。

标签: javascript jquery ruby-on-rails ruby


【解决方案1】:

您应该有一个或多个控制器操作来呈现它。在一个控制器中有很多动作是很好的——你想要避免的是有非常大的动作。一个动作通常应该非常简洁:从相关模型中获取相关数据,然后渲染一些东西。

【讨论】:

    【解决方案2】:

    为每个按钮或表单设置一个值或 ID,并使用 Ajax get 调用设置您的 onclick 函数。因此,在数据参数中,发送按钮或表单值/ID,其中值/ID 将是部分(图形或表单)。最后,在某个动作中,接收这些参数并将其插入到部分渲染中,如下所示:

    def graphs 
      render partial: "path/to/partial/#{params[:button_id]}"
    end
    

    现在您可以使用 ajax 成功填充 div。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 2010-11-10
      • 2017-05-07
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多