0

我已经坚持了大约2周。我需要以正确的方式帮助来做到这一点。我有两个模型。模型一是Leads。模式二是推荐人。

潜在客户belongs_to 推荐人

推荐 has_many Leads

在潜在客户输入屏幕中,有一个部分显示潜在客户可供选择的推荐。部分中有一个 Add Referral 链接,它使用 twitter bootstrap 作为 css 框架来显示一个模式。从那里我正在渲染推荐控制器的新动作。

到目前为止,这一切都有效。我想要发生的是然后我可以输入一个新的推荐,它被保存,模式关闭,然后更新线索编辑/新视图部分中的推荐列表以反映新的推荐添加。但在这一点上,我现在已经嵌套了 form_for。以及正在使用不同控制器的推荐表单。

我不确定我应该如何处理这个问题。几个星期以来,我一直在寻找和尝试各种方法。我是否重复自己并在 Leads 控制器和视图下完全重建 Referral 视图和控制器?像这样的重复代码是我切换到 Rails 的原因,也是我觉得我没有正确看待这个问题的原因。必须有一个简单的方法来解决这个问题。我已经研究过使用 Draper 和 Cell 之类的 Gems,并且我已经阅读了有关使用演示者的信息。但这些似乎都是仪表板类型视图的解决方案,而不是我想要完成的。

任何帮助或方向将不胜感激。

谢谢...

4

1 回答 1

1

这就是我编写此类问题的方式。
它对我有用,也许你可以适应自己的情况。

好吧,你对你create的推荐控制器的操作应该用 javascript 响应。

if @referral.save
    format.js

这样,您将create.js.erb在views 文件夹中拥有一个文件,您可以在其中保存推荐人的意见。
create.js.erb你可能有类似的东西:

$('#modal_id').hide(); // Hide the modal or if you prefer, remove from DOM.
$('#referral_list_id').chidren().delete(); // Remove the list of referrals.
$('#referral_list_id').html(
  "<%= escape_javascript(render('referrals_list')) %>"
); // Render a partial with the new content from your controller.

您的模态form中的新referral内容也应该是远程的:

<%= form_for @referral, :remote => true do %>

也许您在实施这种方式时会遇到一些问题,但我相信这很容易解决。

于 2012-10-26T17:40:10.397 回答