Rails部分呈现在控制台网络响应中但不在视图中

时间:2015-01-16 01:35:13

标签: ruby-on-rails render partials

我正在尝试将我的部分显示搜索结果放在rails视图中。当我检查我的控制台>网络>预览,我看到我的部分渲染与我需要的数据,但它不会显示在我的视图中。

这是我的app / controllers / searchs_controller.rb

def nearby_guides
@address = params[:address]
initial_array = @address.split(',')
city = initial_array[0]
state = initial_array[1].split(' ')
final_state = state[0]
country = initial_array[2]
@result = User.where("city = ?", city)
respond_to do |format|
    format.html {render :partial => '/searchs/result', object: @result}
end
end

这是我的观点/ searchs / _result.html.erb

<h1>HELLO WORLD</h1>

<% if @result %>
    <% @result.each do |r| %>
        <p><%= r.firstname %></p>
    <% end %>
<% end %>

然后在我的观看/ searchs / new.html.erb

<%= render 'result' %>

这是我在控制台中看到的响应&gt;网络&gt;预览

HELLO WORLD

Kevin

这正是我期望的响应,但同样,它不会显示在视图中。我看过堆栈溢出没有运气。非常感谢任何和所有的帮助!

1 个答案:

答案 0 :(得分:0)

我认为这是您的问题:format.html {render :partial =>

当您将动作的结果呈现为html时 - 它需要是整个视图,而不仅仅是部分视图。

渲染部分通常是为AJAX查询保留的 - 您只需要部分页面,并且您的javascript会将其插入到正确位置的页面中。所以要么你需要javascript,要么你需要做类似的事情:render :new