Rails 4.0.3中的嵌套表单

用户名

我在Rails 4的嵌套表单中苦苦挣扎,这是我第一次制作这种形式的表单。我已经阅读了很多文档,但是我无法使其正常工作。:-(

我有两个模型:人和疾病。一个人可以患有多种疾病,而一种疾病属于一个人。看起来很简单。疾病表格未保存在数据库中。

人物模型:

class Person < ActiveRecord::Base
  belongs_to :user
  has_many :diseases, :dependent => :destroy #if you delete a person you also delete all diseases related
  has_many :appointments, :dependent => :destroy
  validates_presence_of :name, :email
  validates :name, :length => {:maximum => 50, :too_long => "name is too long"}
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, format: { :with => VALID_EMAIL_REGEX , message: "is invalid" }

  accepts_nested_attributes_for :diseases

end

疾病模型:

class Disease < ActiveRecord::Base
  belongs_to :person
  has_many :treatments
  validates_presence_of :name, :start
  validates :name, :length => {:maximum => 50, :too_long => "is too long, you can use the description field"}
  validate :start_must_be_before_end, :unless => [:chronical, :unfinished], :presence => true
  validates :end, :presence => true, :unless => [:chronical, :unfinished], :presence => true
  validates :description, :length => {:maximum => 5000, :too_long => "is too long"}

  def start_must_be_before_end
    if self[:end] < self[:start]
      errors.add(:start, "must be before end time")
      return false
    else
      return true
    end
  end

end

人员控制器:

  def create
    current_user
    @person = Person.new(person_params)
    @person.user_id = @current_user.id

    respond_to do |format|
      if @person.save
        format.html { redirect_to @person, notice: 'Person was successfully created.' }
        format.json { render action: 'show', status: :created, location: @person }
      else
        format.html { render action: 'new' }
        format.json { render json: @person.errors, status: :unprocessable_entity }
      end
    end
  end

def person_params
  params.require(:person).permit(:name, :surname, :gender, :birthdate, :bloodtype, :user_id, :phone, :email, diseases_attributes: [:id, :description] )
end

形式:

<%= simple_form_for @person do |f| %>

  <%= f.input :name %>
  <%= f.input :email %>

    <%= simple_fields_for :diseases do |my_disease| %>
      <%= my_disease.input :description %>
    <% end %>

  <%= f.button :submit %>
<% end %>

非常感谢你的帮助。

帕万

问题是线。<%= simple_fields_for :diseases do |my_disease| %>应该是

<%= f.simple_fields_for :diseases do |my_disease| %>

这应该工作。

<%= simple_form_for @person do |f| %>

  <%= f.input :name %>
  <%= f.input :email %>

  <%= f.simple_fields_for :diseases do |my_disease| %> #here
      <%= my_disease.input :description %>
   <% end %>

  <%= f.button :submit %>
<% end %>

有关更多信息,请参见此API

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 4.0中的嵌套表单

来自分类Dev

Rails 4嵌套表单字段未保存在数据库中

来自分类Dev

Rails 4多个嵌套表单

来自分类Dev

带嵌套资源Rails的嵌套表单4

来自分类Dev

Rails 4中与嵌套表单的多对多关系-不允许的参数错误

来自分类Dev

在Rails 4中检查嵌套参数

来自分类Dev

Rails4中的嵌套简单表单-具有多次通过,保存多个记录

来自分类Dev

Rails 4中的嵌套表单未在视图中呈现

来自分类Dev

嵌套表单无法保存Rails 4

来自分类Dev

Rails 4嵌套表单link_to编辑无法循环工作

来自分类Dev

在嵌套模型表单Rails 4中删除记录的问题

来自分类Dev

Rails 4:嵌套表单

来自分类Dev

Rails 4嵌套表单未在参数中传递嵌套属性

来自分类Dev

Rails 4嵌套表单,belongs_to保存问题

来自分类Dev

创建用户提交表单时,Ruby on Rails 4中的参数数量错误(0为1)

来自分类Dev

Rails4 anwer字段中的嵌套表单未构建为4.times

来自分类Dev

表单,嵌套资源和路由错误Rails 4

来自分类Dev

嵌套表未在Rails 4中更新

来自分类Dev

带嵌套资源Rails的嵌套表单4

来自分类Dev

Rails 4中与嵌套表单的多对多关系-不允许的参数错误

来自分类Dev

Rails 4应用程序中嵌套模型的表单存在问题

来自分类Dev

Rails4中的嵌套简单表单-具有多次通过,保存多个记录

来自分类Dev

如何在Rails 4中创建嵌套表单

来自分类Dev

允许在Rails 4中创建嵌套资源

来自分类Dev

Rails 4中的嵌套表单似乎不起作用

来自分类Dev

Rails 4:嵌套表单

来自分类Dev

使用Rails 4,如何在父表单中深度嵌套资源

来自分类Dev

在Rails 4中创建一个嵌套的表单更新按钮

来自分类Dev

Rails 4嵌套表单未在参数中传递嵌套属性

Related 相关文章

热门标签

归档