Ruby on rails select_标记不保存所选选项

Ruby on rails select_标记不保存所选选项,ruby-on-rails,forms,Ruby On Rails,Forms,我是web开发和Rails方面的新手。我一直在努力理解为什么我的表格没有被完全保存。以下是我正在使用的代码: <div class="field"> <%= f.label :type %><br> <%= select_tag(:type, options_for_select([['Verb', 'Verb'], ['Adjective', 'Adjective'], ['Noun','Noun'],['Preposition',

我是web开发和Rails方面的新手。我一直在努力理解为什么我的表格没有被完全保存。以下是我正在使用的代码:

  <div class="field">
    <%= f.label :type %><br>
    <%= select_tag(:type, options_for_select([['Verb', 'Verb'], ['Adjective', 'Adjective'], ['Noun','Noun'],['Preposition','Preposition'],['Article','Article'],['Adverb','Adverb']])) %>
  </div>
  <div class="field">
    <%= f.label :category %><br>
    <%= select_tag "category",
                   "<option>Appliances</option>
                    <option>Clothes and Accessories</option>
                    <option>Colours</option>
                    <option>Communication and Technology</option>
                    <option>Documents and Texts</option>
                    <option>Education</option>
                    <option>Entertainment and Media</option>
                    <option>Family and Friends</option>
                    <option>Food and Drink</option>
                    <option>Health, Medicine and Exercise</option>
                    <option>Hobbies and Leisure</option>
                    <option>House and Home</option>
                    <option>Measurements</option>
                    <option>Personal Feelings, Opinions and Experiences (adjectives)</option>
                    <option>Places: Buildings</option>
                    <option>Places: Countryside</option>
                    <option>Places: Town and City</option>
                    <option>Services</option>
                    <option>Shopping</option>
                    <option>Sport</option>
                    <option>The Natural World</option>
                    <option>Time</option>
                    <option>Travel and Transport</option>
                    <option>Weather</option>
                    <option>Work and Jobs</option>".html_safe %>
  </div>
注:我保留了两种我尝试使用的不同方法。

使用f.select而不是select\u标签

或者,如果您正在使用form_并传递一个对象,那么您也可以按如下操作

select_tag(:type, options_for_select([['Verb', 'Verb'], ['Adjective', 'Adjective'], ['Noun','Noun'],['Preposition','Preposition'],['Article','Article'],['Adverb','Adverb']],f.object.type))
我们正在将类型为的值从实际对象传递到select的选项中。 在使用时,希望您将所选值作为第二个参数发送

options\u for\u select还采用第二个参数,即所选值

为了将来参考,请在发布问题时始终指定Rails版本

我注意到您使用的是f.label,在这种情况下,您可能还想看看


HTH

对于第一个,您应该使用f.select而不是select_标记,rails标记是生成html元素的帮助器,但是在这种情况下,您需要一个链接到表单的项,因此您可以使用表单帮助器来代替select

对于另一个例子,我不确定它是否会像那样工作,但试着用同样的想法,你应该会发现select被传递给你的控制器,也使用符号名而不是字符串名,意思是:category而不是category,如果你想有一个短语像select a category。。。。在末尾添加另一个选项:prompt=>选择一个类别…,希望对您有所帮助并查看站点,这是学习rails的好地方

select_tag(:type, options_for_select([['Verb', 'Verb'], ['Adjective', 'Adjective'], ['Noun','Noun'],['Preposition','Preposition'],['Article','Article'],['Adverb','Adverb']],f.object.type))
# this will show Preposition selected
options_for_select([['Verb', 'Verb'], ['Adjective', 'Adjective'], ['Noun','Noun'],['Preposition','Preposition'],['Article','Article'],['Adverb','Adverb']], 'Preposition')