2016-04-14 4 views
0

Я знаю, что это, вероятно, очень простой вопрос, но я совершенно новый для Ruby и своего рода в тупике. Я сделал простой небольшой сайт с профилями и страницами профиля. Но на страницах профиля я хотел бы добавить новое текстовое поле, например «Bio», например, когда пользователь вводит биографию о себе и показывает. Im просто на пустой о том, как создать новое текстовое поле, где люди могут вводить этот материал. Я знаю, что это основной материал, который просто застрял и ищет какую-то помощь или руководство для учебника или что-то в этом роде. Спасибо заранееКак создать новое текстовое поле

ответ

0

Вот пример скопирован из another answer:

<%= form_for(:ad, :url => {:action => 'create'}) do |f| %> 
    <%= f.text_field(:name) %> 
    <%= f.text_area(:text, "", :size => "50x10") %> 
    <%= submit_tag("Submit") %> 
<% end %> 
0

Это своего рода сложного вопроса, когда вы думаете об этом, потому что есть так много частей.

Ruby on Rails построен на архитектуре, называемой Model View Controller или MVC. Три части вместе создают пользовательский интерфейс, который предоставляется пользователю.

Модели - это фактические данные, такие как объекты пользователя, в данном случае. Для создания модели, введите эту команду в консоли:

rails g model User bio:text name:string 

Это позволит сделать базовую модель пользователя, который содержит только две колонки, колонки для био и колонки для их имени. Обратите внимание, что это очень несложно, и это может быть расширено много, но на данный момент это будет сделано.

Или, если у вас уже есть модель пользователя, введите эту команду в консоли:

rails g migration add_bio_to_users bio:text 

Далее являются контроллеры, контроллеры, таким образом, чем соединить модели и мнения, так они управляют всей логикой в ​​конце, например, создавая новых пользователей или добавляя биос в свои профили.

Вы можете создать контроллер пользователя, как это (если у вас еще нет):

rails g controller Users new 

И потом, вы можете добавить этот код в новый созданный файл, чтобы добавить функциональность добавления биос (и показывать их тоже) (и обновление других столбцов, а):

def update 
    @user = User.find(params[:id]) 
    if @user.update_attributes(user_params) 
     render @user 
    else 
     render @user # Handle error accordingly 
    end 
end 

def show 
    @user = User.find(params[:user]) 
end 

private 
    def user_params 
     params.require(:user).permit(:name, :bio) 
    end 

Теперь, в заключительной части, которая является точка зрения, которая является фактическим вещь, которая представлена ​​пользователю:

<%= form_for(:user, :url => {:action => 'update'}) do |f| %> 
    <%= f.text_field(:name) %> 
    <%= f.text_area(:bio, "", :size => "50x50") %> 
    <%= f.submit yield(:button_text) %> 
<% end %> 

Обратите внимание, что это просто представление, предполагающее, что у вас также есть имя столбца в вашей модели пользователя, вы можете соответствующим образом изменить его.

И, наконец, чтобы показать пользователю, добавить это мнение шоу:

<%= @user.bio %> 

показать био в представлении шоу.

Удачи вам!

+0

Спасибо, что все это отлично работает, пока я не позвоню. Поэтому у меня есть форма, в которой вы можете ввести биографию, и я попал в submit. Но на моем показе, где у меня <% = @ user.bio%> ничего не отображается. –

+0

Возникает ошибка, вы можете показать мне свой код? –

Смежные вопросы