2016-05-30 10 views
0

Я пытаюсь использовать вложенные модели в моем приложении для рельсов, но у меня есть небольшая проблема.Не найдено входных данных для varchar

Это мое мнение:

<%= simple_form_for @installation do |f| %> 
    <div class="field"> 
    <%= f.label :x %><br> 
    <%= f.input :x %> 
    </div> 

    <%= f.simple_fields_for :address do |u| %> 
    <div class="field"> 
     <%= u.label :street_address %><br> 
     <%= u.input_field :street_address %> 
    </div> 
    <% end %> 

<% end %> 

Когда я бегу, я получаю эту ошибку <%= u.input_field :street_address %> -> «Нет входного сигнала не найдено для VARCHAR», но когда я изменить этот мир кода <%= u.input_field :street_address, :as => :string %> работы. Почему это происходит?

+0

Каков тип данных 'street_address', который вы определяете в схеме? –

+0

@Hieu Pham varchar (200) – lolix

+0

Простой поиск в Google вернул это: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues/411 –

ответ

2

Волшебство simple form автоматически определит ваш тип данных и автоматически выберет для него входной элемент управления. Например:

text => text_area 
string => text field 
boolean => checkbox 

Как document описал, не существует тип данных varchar что simple form может понять autotically, поэтому вам нужно указать тип ввода вручную!

Таким образом, вы можете использовать as: :string или as: :text, чтобы заставить его работать!

+0

и если это коллекция? @Hieu Pham – lolix

+0

Вы можете использовать флажок или выбрать, если он по-прежнему не помогает, вы можете написать свой собственный вход, деталь находится на https://github.com/plataformatec/simple_form#available-input-types-and-defaults- для-каждого-колонного типа –