【问题标题】:How to create new text field如何创建新的文本字段
【发布时间】:2016-04-14 01:32:44
【问题描述】:

我知道这可能是一个非常基本的问题,但我对 Ruby 是全新的,而且有点走投无路。我制作了一个带有个人资料和个人资料页面的简单小网站。但是在个人资料页面上,我想添加一个新的文本字段,例如“Bio”,例如用户输入关于他自己的简历并显示。我只是对如何创建一个人们可以输入这些内容的新文本字段一无所知。我知道这是基本的东西,只是卡住了,正在寻找教程或其他东西的帮助或指导。提前谢谢你

【问题讨论】:

    标签: ruby-on-rails forms textfield


    【解决方案1】:

    这是从another answer复制的示例:

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

    【讨论】:

      【解决方案2】:

      这是一个复杂的问题,仔细想想,因为有很多部分。

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

      在这种情况下,模型是实际数据,就像用户对象一样。要创建模型,请在控制台中输入以下命令:

      rails g model User bio:text name:string
      

      这将创建一个基本的用户模型,它只包含两列,一列是个人简介,一列是他们的姓名。请注意,这非常简单,并且可以扩展很多,但现在就可以了。

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

      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 模型中也有一个列名,您可以相应地更改它。

      最后,为了向用户显示,将其添加到显示视图中:

      <%= @user.bio %>
      

      在显示视图中显示简历。

      祝你好运!

      【讨论】:

      • 谢谢你,所以一切都很好,直到我想打电话给它。所以我有一个表格,你可以在其中输入简历,然后我点击提交。但是在我有 的节目中没有显示任何内容。
      • 有错误抛出,你能告诉我你的代码吗?
      猜你喜欢
      • 2023-04-10
      • 2014-05-22
      • 2012-09-05
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多