如何最好地在轨道上的红宝石中呈现视图中的不同部分

时间:2017-10-23 08:09:33

标签: javascript jquery ruby-on-rails ruby

我对rails非常陌生,而且我还没有很好地了解放置东西的位置。我有一个视图,它有几个按钮,每个按钮将呈现不同的图形或形式,但我不知道在哪里放置渲染的逻辑。

到目前为止,我已经考虑了以下内容:

  1. 向我的控制器添加一些方法,这些方法呈现一个将相关图形放在空div中的js.erb。这个问题是我的控制器会很忙,我认为这与rails风格不符。
  2. 有一个javascript函数链接到按钮onclick事件,它只是把部分放在div中。这个问题是我会把所有预先渲染的图形放在一边,看起来很混乱。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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