需要更多信息。基本上是你的观点的代码。我不认为你需要在你的jQuery中写任何rails的查询。这很容易。
到目前为止,我假设,从您的表单用户将收到部分的问题的选择。所以这些步骤应该在后面。
您将在您选择的httm输入上绑定更改事件。
$("#question_section").on(function(){
var value = $(this).value() // get whats the section value/text
})
现在在您的控制器中添加一个动作,您将在其中查询问题。所以对此你需要做的事情。注册服务商在路由中的行为如下:
resources :questions do # I assume there is a questions resource
get :count, on: :collection
end
现在,这将为您提供一个url作为该行为的路由。现在让我们再次回到javascript部分。
$("#question_section").on(function(){
var value = $(this).val() // get whats the section value/text
$.ajax({
url: '/questions/count.js', // you can skip the format here
data: {section: value}
success: function(data){
$('input[name="question_count"]').val(data)
}
})
})
所以现在我们已经准备好了脚本。现在让我们移动到控制器。
def count
number_of_questions = Question.select("DISTINCT(section)").where(section: params[:section]).count
render :js => number_of_questions
末
嗯,这是你可以遵循的步骤。在视图层直接查询是不可接受的。以责任为中心的设计并不鼓励这一点。我希望我能用我的方法提供一些提示。
请检查想法和更好的方法来解决这个问题。谢谢。 – Rubyrider 2014-11-04 18:41:33