1

我需要使用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)
4

1 回答 1

0

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

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

于 2012-08-31T21:02:17.837 回答