将变量从ruby传递到javascript

将变量从ruby传递到javascript,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我试图从搜索提示符中获取用户选择的值,并将其传递给javascript。 在我的搜索控制器中,它存储在@result中。 然后,我通过params[:query_id]找到我需要的东西 希望通过将未签名用户的选择添加到提示符中,使提示符对未签名用户更具吸引力。 试着用一种简单的方法- var selected = getElementById('#query').value; 但收到了以下错误消息: ReferenceError:找不到变量:getElementById 试图从ruby数组获取

我试图从搜索提示符中获取用户选择的值,并将其传递给javascript。 在我的搜索控制器中,它存储在@result中。 然后,我通过params[:query_id]找到我需要的东西

希望通过将未签名用户的选择添加到提示符中,使提示符对未签名用户更具吸引力。 试着用一种简单的方法-

var selected = getElementById('#query').value;
但收到了以下错误消息: ReferenceError:找不到变量:getElementById

试图从ruby数组获取此变量:

var selected= <%= @result.to_json %>;
getElementById未在全局对象中定义。它是文档的属性

尝试:


Rails附带jQuery,为什么不使用它呢

我想这就是你想要的

$'query'.val


但是,您应该跳入浏览器中呈现的html,检查是否要选择节点作为名称查询,我认为这是rails所做的,或者id查询是您所认为的

我建议发布更多代码。。。如果没有控制器代码,它就有点过于稀疏,无法让我们看到问题。这确实解决了ReferenceError,但现在我得到了id TypeError:“null”不是一个正在计算“document.getElementById”query.value”的对象。
  format.js  do
    @search = SearchItem.search{ keywords params["query"] }

    @result = []
    @search.each_hit_with_result do |hit, item|
      @result << {:name => hit.stored(:name), :id => item.id}
    end

    render :json => @result.to_json

  end

end
#search
  = form_tag find_from_query_entries_path, :remote => true, :id => "search_form" do
    = text_field_tag :query, nil
    = hidden_field_tag :query_id
var selected = document.getElementById('#query').value;