ruby-on-rails - 如何向表单添加虚拟字段

标签 ruby-on-rails ruby ruby-on-rails-4


开始学习 Ruby on Rails。
如何给表单添加虚拟字段?
提交表单后,这些字段必须合并并存储在一个数据库字段中。

最佳答案

首先像往常一样设置您的表单:

<%= form_for @user do |f| %>
<ol>
  <li>
    <%= f.label :first_name, 'First Name' %>
    <%= f.text_field :first_name %>
  </li>
  <li>
    <%= f.label :last_name, 'Last Name' %>
    <%= f.text_field :last_name %>
  </li>
  <%= f.submit %>
</ol>
<% end %>

在这个例子中,我们为 first_namelast_name 添加了一个虚拟属性。

用户.rb

class User < ActiveRecord::Base
  attr_accessor :first_name
  attr_accessor :last_name
end

为您的新虚拟属性添加一个attr_accessor

users_controller.rb

def create
  @user = User.new(:full_name => {'firstname' => user_params[:first_name], 'lastname' => user_params[:last_name]})
  ...
end

private

def user_params
  params.require(:user).permit(:first_name, :last_name)
end

最后,添加一个允许虚拟属性参数的方法(假设是 Rails 4)。

要保存多个输入并将它们保存到数据库中的单个字段中,您可以组合 Controller 中的虚拟字段,然后将它们保存到数据库中,如上面的 create 方法所示。

关于ruby-on-rails - 如何向表单添加虚拟字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26077437/

相关文章:

css - 在 Rails 中添加自定义字体

Ruby Regex 从电子邮件地址中提取域

ruby - 帮助重构 Ruby 哈希切片和切 block

ruby-on-rails - have_selector 测试失败

twitter-bootstrap - 在 Devise 上注册时堆栈级别太深

ruby-on-rails - 传递给#or 的关系必须在结构上兼容。不兼容的值 : [:references]

ruby-on-rails - Spree 模块装饰器

javascript - 在不刷新页面的情况下进行部分显示

Ruby 的 Mechanize 在选择单选按钮时会犹豫(可能是因为它的名称大写)但 Perl 的 WWW::Mechanize 工作正常

javascript - 需要内联日期、月份和年份选择标签