我在modal
中有一个搜索表单,如下所示:
<%= form_tag "/search", :remote => true, :method => :get do %>
<input type="text" name="search_name">
<button type="submit">Search</button>
<% end %>
<div id="channels"></div>
上面的表单在我的控制器中调用以下方法:
#my_controller.rb:
def search
parsed_json = JSON.parse(@json_string) # fetch some json data
render do |index|
ndex.html {}
index.js {}
end
end
所以我希望上面的搜索方法在index.js.erb
下面app/view/my_controller
呈现,以更新我的div
:
$("#channels").html("<%= render :partial => "channels" %>")
单击搜索按钮后无法更新视图,因为无法调用index.js.erb
,是不是有想法?
P.S:我正在使用rails 3.2
答案 0 :(得分:0)
您缺少index.js.erb中的'escape_javascript'标记
替换:
$("#channels").html("<%= render :partial => "channels" %>")
使用:
$("#channels").html("<%= escape_javascript render :partial => "channels" %>")
使用以下内容详细了解:Why escape_javascript before rendering a partial?
另外,我可能错了,但这看起来有点奇怪:
render do |index|
index.html {}
index.js {}
end
不应该是:
respond_to do |format|
format.html {}
format.js { render 'index.js.erb' }
# ^ If you dont write this, it will look for search.js.erb in your views dir
end