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