10

我一直在我的应用程序上观看和复制这些 railscast:196-nested-model-form-part-1197-nested-model-form-part-2。我还没有专业帐户,所以我无法观看修订后的剧集。

我正在 rails4 (edge) 下开发,并且link_to_function已被弃用,取而代之的是不引人注目的 JS(这很棒)。

我将保留上述 railscasts 的示例(即调查/问题)。我想做的是通过不显眼的javascript使用问题的部分,我只是不知道我应该如何以及在哪里这样做。

我在想两种方法:

  • 第一种方法是在我app/assets/javascripts的文件中添加surveys.js该函数add_question,但我不知道如何从这里使用我的部分。
  • 另一种方法是在我的中创建一个新操作,SurveyController该操作将使用部分问题进行响应,但我对在我的调查控制器中具有特定于问题的操作这一事实感到困扰。

我不禁想到必须有更好的方法来做到这一点。

4

2 回答 2

18

您知道远程链接和表单吗?您可以在这里使用远程链接来完成您想要的。

在您看来:

link_to 'Add question', add_question_path(@survey), remote: true

在您的控制器中

def add_question
  @survey = Survey.find(params[:id])

  respond_to do |format|
    format.js #add_question.js.erb
  end
end

最后一步是创建一个文件 app/views/surveys/add_question.js.erb

$('#my_survey').append('<%=j render partial: 'my_question_partial' %>')

不要忘记为您的 ask_question_path 创建路线

有关远程链接和表单的更多信息,请参阅:http ://tech.thereq.com/post/17243732577/rails-3-using-link-to-remote-true-with-jquery-ujs

于 2013-03-22T12:37:08.347 回答
9

我也没有 Railscasts 的专业帐户,但有时看看Ryan 的 Github 帐户是个好主意。他经常为他在剧集中所涵盖的内容开发宝石。在那里你会发现这个很棒的nested_form gem,它完全符合你的要求。

当然你可以重新发明轮子,但我认为使用 Ryan 的 gem 更容易、更快捷。该文档完美地解释了如何使用它。玩得开心!

于 2013-03-22T12:40:04.800 回答