ruby-on-rails - 我如何使用带有 Ajax 的下拉框在 Rails 中呈现部分内容?

标签 ruby-on-rails ruby ajax search

我创建了如下下拉菜单布局。

 <select name="search" id="search" >
            <option value="0">Please select</option>
            <option value="1">Name</option>
            <option value="2">Trainer</option>
            <option value="3">Venue</option>
            <option value="4">Date</option>
           </select>

    <div id="div_to_be_updated" style="float:right"></div>

        <%= observe_field 'search',
        :update => 'div_to_be_updated',
        :url => {:controller => 'events', :action=> 'find' },
        :with => "'is_delivery_address=' + escape(value)" %>

然后我在我的 Controller 中创建了查找方法。

def find

if params[:is_delivery_address] == "1" || "2" || "3" 

render :partial => 'layouts/new_search' 

else
 render :partial => 'layouts/nothing' 

end
end

然后我创建了名为 _new_search 的部分。

<span style="text-align: right">
<% form_tag "/events/find_search" do %>
<%= text_field_tag :search_string%>
<%= submit_tag "search" %>
<%end%>
</span>

我再次在 Controller 中创建了 find_search 方法。

def find_search
events=Event.find(:all, :conditions=>["venue = ?", params[:search_string]])
end

然后我创建了 View 页面。但是当我搜索某些东西时,它会给出异常。

事件中没有方法错误#find_search

显示第 10 行出现的 app/views/events/find_search.html.erb:

当你没想到它时,你有一个 nil 对象! 您可能期望 Array 的实例。 评估 nil.each 时发生错误

我该怎么办?谁能帮帮我>

最佳答案

不确定是不是这样——但下面这行有一个错误

if params[:is_delivery_address] == "1" || "2" || "3" 

这将始终为真,因为 if params[:is_delivery_address] != "1" 那么结果将为 "2"(非零 - 即为真)。

尝试 irb 检查:

> params = {:is_delivery_address => "0" }
> params[:is_delivery_address] == "1" || "2" || "3" 
=> "2"

关于ruby-on-rails - 我如何使用带有 Ajax 的下拉框在 Rails 中呈现部分内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7092156/

相关文章:

ruby-on-rails - mina 部署未定义方法 set_default

ruby-on-rails - 在下拉列表中的树层次结构中显示类别/子类别

javascript - 通过 JQuery $.post 将 JavaScript 数组传递给 PHP

javascript - jQuery Ajax : VM845:1 Uncaught SyntaxError: Unexpected token <

javascript - jquery 库的兼容性问题

ruby-on-rails - 如何从子记录集合中获取曾祖 parent 记录集合?

ruby-on-rails - 如何验证非模型(甚至非对象)字段

ruby-on-rails - 模块 AbstractController::Rendering 的未定义方法 render_to_body

ruby - 无法通过 Ajax 将表单发布到不同的子域(警告 : Can't verify CSRF token authenticity)

ruby - 如何使用 NGINX 部署 Ruby Rack 应用程序