不能通过$ getJSON上传参数使用js.coffee

时间:2012-08-31 20:41:54

标签: javascript ruby-on-rails-3 jquery getjson

我需要使用JS将参数传递给rails控制器:

def page
  @select = Firstpage.where( :pid=>params[:par_id])
  respond_to do |format|
   format.html # page.html.erb
   format.json { render json: @select }
  end
end

js.coffee代码:

fetchselect=(val) ->
  $.getJSON('firstpages_controller.rb', par_id:val )

$('.homeNav').find('.unactive').click ->
  id = $(this).attr('id')
  fetchselect(id)

1 个答案:

答案 0 :(得分:0)

coffeescript服务器端?如果它被提供给客户端,那么你不应该直接向控制器发出请求 - 相反,你应该提出一个资源请求,rails服务器应该将其解析为正确的控制器。

详细说明:当您在服务器上为客户端生成rails链接时,您可能会对pages_path产生影响,它会生成“http:// base_path / pages”效果的URL。这对于rails来说非常重要 - 用户可以访问的每个对象都具有RESTful表示,或者更简单地说,有一个URL来识别它。资源的JSON表示没有区别 - 要获取JSON,传递给getJSON的url必须以相同的方式进行格式化。就客户而言,“pages_controller”不存在 - 这是他们无法直接访问的背景细节。