除非我更改值文本,为什么我的表单不会返回匹配结果?

时间:2014-01-04 21:39:58

标签: mysql ruby-on-rails

提前感谢您的帮助!在我的Ruby on Rails应用程序中,我的搜索表单返回结果,除非我在下拉字段中使用特定选项。此选项不返回任何结果,但应该。

设置:Rails 2.3X / MySQL数据库。该表单从名为“Masterlocations”的MySQL表中提取结果,该表有一个名为geo_region的列。我正在尝试通过geo_region对记录进行基本查找。它适用于我的下拉列表中的每个选项,除了“New England CT ME MA NH RI VT”

以下是相关的表单字段:

    <p><label for="region">Region</label>
    <select id="geo_region" name="search[geo_region]">
    <option value=""> </option>
    <option value="Far West AK CA HI NV OR WA">Far West AK CA HI NV OR WA</option>
    <option value="Great Lakes IL IN MI OH WI">Great Lakes IL IN MI OH WI</option>
    <option value="Mid East DE DC MD NJ NY PA">Mid East DE DC MD NJ NY PA</option>
    <option value="New England CT ME MA NH RI VT">New England CT ME MA NH RI VT</option>
    <option value="Plains IA KS MN MO NE ND SD">Plains IA KS MN MO NE ND SD</option>
    <option value="Rocky Mountains CO ID MT UT WY">Rocky Mountains CO ID MT UT WY</option>
    <option value="Southeast AL AR FL GA KY LA MS NC SC TN VA WV">Southeast AL AR FL GA KY LA MS NC SC TN VA WV</option>
    <option value="Southwest AZ NM OK TX">Southwest AZ NM OK TX</option>
    <option value="US Service schools">US Service schools</option>
    </select>

我尝试过的事情:

我将选项更改为:“New England CT”并更改了数据库中的一个值以进行匹配。仍然无效。

然后,我将选项改为:“New England”并更改了数据库中的一个值以匹配。这有效,但我不知道为什么,我宁愿避免更改所有数据库值。

再次感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我打算把它写成评论,但它太大了:


IMO,你最好给<select> id一个#view <select id="geo_region" name="search[geo_region]"> <option value=""> </option> <option value="0">Far West AK CA HI NV OR WA</option> <option value="1">Great Lakes IL IN MI OH WI</option> <option value="2">Mid East DE DC MD NJ NY PA</option> <option value="3">New England CT ME MA NH RI VT</option> <option value="3">Plains IA KS MN MO NE ND SD</option> <option value="4">Rocky Mountains CO ID MT UT WY</option> <option value="5">Southeast AL AR FL GA KY LA MS NC SC TN VA WV</option> <option value="6">Southwest AZ NM OK TX</option> <option value="7">US Service schools</option> </select> 列表,你可以在Rails控制器中引用它,如下所示:

#controller
def your_method
    regions = Model.regions
    #db call here
end

#model
def self.regions
    regions = []
    regions << %w(Far West AK CA HI NV OR WA)
    regions << %w(Great Lakes IL IN MI OH WI)
    regions << %w(Mid East DE DC MD NJ NY PA)
    regions << %w(Plains IA KS MN MO NE ND SD)
    regions << %w(Rocky Mountains CO ID MT UT WY)
    regions << %w(Southeast AL AR FL GA KY LA MS NC SC TN VA WV)
    regions << %w(Southwest AZ NM OK TX)
    regions << %w(US Service schools)
    regions
end

这将允许您使用传递的ID来创建数组或类似的查询:

{{1}}