Rails 4 - 按范围收集简单表单

时间:2016-01-03 06:39:05

标签: ruby-on-rails ruby-on-rails-4 collections scope simple-form

我正在尝试在Rails 4中创建一个应用程序。

我使用简单的表格形式。

我有一个行业模式。

industry.rb有:

scope :alphabetically, -> {  order("sector ASC") }

行业控制人员:

def index
    #@industries = Industry.all
    @industries = Industry.alphabetically
  end

行业形式有:

<%= simple_form_for(@industry) do |f| %>
            <%= f.error_notification %>

                <div class="form-inputs">


                    <%= f.select :sector, options_from_collection_for_select(Industry.alphabetical), :prompt => 'Select' %>  

                    <%= f.input :icon, as: :file, :label => "Add an icon" %>

                </div>

                <div class="form-actions">
                    <%= f.button :submit, "Submit", :class => 'formsubmit' %>
                </div>
        <% end %>

我试图获取表单输入:扇区使用行业集合(通过调用范围)。

当我尝试这个时,我收到以下错误:

undefined method `alphabetical' for #<Class:0x007fef65635220>

任何人都可以看到错误吗?

1 个答案:

答案 0 :(得分:1)

应该是alphabetical而不是options_from_collection_for_select。 另外,根据options_from_collection_for_select文档,您需要向collection方法传递至少3个参数:value_methodtext_method<%= f.select :sector, options_from_collection_for_select(Industry.alphabetically, 'id', 'sector'), :prompt => 'Select' %>

更改为以下内容以使其正常工作:

navigator.geolocation.getCurrentPosition