Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3.2:选择未记住的选项_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails 3.2:选择未记住的选项

Ruby on rails Rails 3.2:选择未记住的选项,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我遇到了一个奇怪的问题,在提交时没有记住我的选择选项(并且验证失败,重新加载表单) 这是我的密码 true%> 以下是美国各州的一些情况: def us_states [ ['Alabama', 'AL'], ['Alaska', 'AK'], < >无论我选择什么,它总是选择在选择框中显示空白选项。如果我根本不使用:include_空白,它总是显示阿拉巴马州。因此,它只是显示第一个字段。通过将其作为参数传递给\u select的options\

我遇到了一个奇怪的问题,在提交时没有记住我的选择选项(并且验证失败,重新加载表单)

这是我的密码

true%>

以下是美国各州的一些情况:

  def us_states
      [
        ['Alabama', 'AL'],
        ['Alaska', 'AK'],

< >无论我选择什么,它总是选择在选择框中显示空白选项。如果我根本不使用:include_空白,它总是显示阿拉巴马州。因此,它只是显示第一个字段。

通过将其作为参数传递给\u select的
options\u来指定所选值

<%= form.select :state, options_for_select(us_states, form.object.state), :include_blank => true %>
true%>

文档。

好的,轮到我了。 我会告诉你我如何在我的应用程序中使用它, 以身作则

下面的代码构成选择框。

<%= select("product", "id",options_for_select(MobilesLists.get_colors(mobile.mobile_name))) %>
它返回一个数组。所以,现在它变成了,

ruby-1.9.2-p290 :011 > MobilesLists.get_colors("Samsung Galaxy Y S5360")

=> [["black", 3], ["bubblegum pink", 5], ["fruity orange", 4], ["metallic grey", 1], ["silver platter", 6], ["white", 2]] 
 <%= select("product", "id",options_for_select([["black", 3], ["bubblegum pink", 5], ["fruity orange", 4], ["metallic grey", 1], ["silver platter", 6], ["white", 2]])) %>
<select id="product_id" name="product[id]"><option value="3">black</option>
<option value="5">bubblegum pink</option>
<option value="4">fruity orange</option>

<option value="1">metallic grey</option>
<option value="6">silver platter</option>
<option value="2">white</option></select>
if !params[:product][:id].nil?

  @product_id = params[:product][:id].to_i

end

就这样!,谢谢 事实证明,我所要做的就是将第二个参数传递给options\u for\u select。所以我让它工作了


options\u for\u select(us\u states,@user.state)

当您删除
时:包括\u blank=>true
它是否正常工作?没有接触任何其他代码?哦,没有,它只是显示阿拉巴马州总是那么。已更新问题。请将其中一个问题标记为正确。我认为你误解了我的问题。我问如何在重新加载表单时使选择框默认为所选值。如果可以的话,我会给出+10。虽然这是正确的,但我接受了Ogz向导的答案,答案是相同的。我宁愿接受别人的答案也不愿接受我自己的答案。