Rails NoMethodError' country_select'

时间:2017-07-30 06:47:35

标签: ruby-on-rails ruby activerecord

所以,我收到了这个错误,我不知道为什么,因为它应该可以工作,因为在我的架构国家/地区是一个字符串。

这是我的代码:

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

    <div class="form-inputs" id="session-form">
      <%= f.input :first_name, required: true, autofocus: true, placeholder: "First Name", label:false %>
      <%= f.input :last_name, required: true, autofocus: true, placeholder: "Last Name", label:false %>
      <%= f.input :email, required: true, autofocus: true, placeholder: "Email", label:false %>
      <%= f.input :sex, required: true, autofocus: true, placeholder: "Sex", label:false %>
      <%= f.input :country, required: true, autofocus: true, placeholder: "Country", label:false %>
      <%= f.input :city, required: true, autofocus: true, placeholder: "City", label:false %>
    </div>

  <%= f.button :submit, "Apply", class: "student-bordered" %>
<% end %>

错误消息告诉我:

  

未定义的方法`country_select&#39;对于#

为什么告诉我国家选择?我没有国家/地区选择,因为我的架构看起来像这样:

schema.rb

create_table "studentapplications", force: :cascade do |t|
  t.string   "first_name"
  t.string   "last_name"
  t.string   "email"
  t.string   "sex"
  t.string   "country"
  t.string   "city"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end

1 个答案:

答案 0 :(得分:1)

如果您有字段名称&#39; country&#39;,simple_form将尝试使用country_select。您可以使用以下代码覆盖它,

<%= f.input :country, as: :text %>

或者,您可以在simple_form.rb初始化程序中添加一行

config.input_mappings = { /country/ => :string }