如何创建新的文本字段

时间:2016-04-14 01:32:45

标签: ruby-on-rails forms textfield

我知道这可能是一个非常基本的问题,但我对Ruby来说是全新的,有点死路一条。我创建了一个包含个人资料和个人资料页面的简单小网站。但是在个人资料页面上,我想添加一个像“Bio”这样的新文本字段,例如用户输入一个关于他自己的生物,并显示。我只是在如何创建一个新的文本字段,人们可以输入这些东西。我知道这是基本的东西,只是卡住了,寻找一些教程或其他东西的帮助或指导。提前谢谢

2 个答案:

答案 0 :(得分: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 %>

答案 1 :(得分:0)

这是一个复杂的问题,一旦你想到它,因为有很多部分。

Ruby on Rails建立在称为模型视图控制器或MVC的架构之上。这三个部分共同构成了呈现给用户的用户界面。

在这种情况下,模型是实际数据,如User对象。要创建模型,请在控制台中输入以下命令:

rails g model User bio:text name:string

这将生成一个基本的用户模型,它只包含两列,一列是bio,另一列是其名称。请注意,这非常简单,并且可以进行大量扩展,但现在可以进行扩展。

或者,如果您已有用户模型,请在控制台中输入以下命令:

rails g migration add_bio_to_users bio:text

接下来是控制器,控制器在某种程度上是连接模型和视图的内容,因此它们管理后端的所有逻辑,例如创建新用户或向其配置文件添加bios。

您可以像这样创建用户控制器(如果您还没有):

rails g controller Users new

然后,您可以将此代码添加到生成的新文件中,以添加添加BIOS的功能(并显示它们)(以及更新其他列):

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 %>

在展示视图中显示生物。

祝你好运!