Pergunta

Eu tenho um formulário que eu preciso de exibição para uma tabela que tem um relacionamento com um par de outras mesas. Por exemplo, eu tenho uma tabela "casos" (acho que, caso o investigador), que requerente has_one e cliente has_one.

Gostaria que o formulário para exibir os campos a preencher para os dados de caso, dados de clientes e dados requerente. Existe uma maneira fácil de fazer isso para que quando ele é submetido, seria tão simples como:

case = Case.new(params[:case])
case.save

Como seria se eu estava apenas apresentar e salvar um formulário para apenas os dados caso?

Foi útil?

Solução

Parece que você está procurando o método accepts_nested_attributes_for de activerecord. Você precisará criar o seu formulário usando

- form.fields_for :claimant do |claimant_form|
  = claimant_form.text_field :name

Você pode encontrar muito mais informações em Ryan Daigle blog

Outras dicas

Eu não acredito que há uma maneira em que você pode apenas chamar case.save e ele vai trabalhar.

Para tornar o formulário, olhar em usar fields_for. http://api.rubyonrails.org/classes/ActionView/Helpers/ FormHelper.html # M001605

fields_for permite adicionar campos que são armazenados em diferentes variáveis ??do POST, por isso, se você configurar os campos corretamente, em seguida, em seu novo método que você poderia fazer algo parecido com isto:

claimant = Claimant.new(params[:claimant])
claimant.save

O que não é muito mais complicado.

Ver o meu complexas-form-exemplos na criação de vários aninhada formas -Model. Esta foi atualizado para trabalhar com accepts_nested_attributes_for Rails 2.3 do.

Ele permite que você aninhar as associações tudo sob params[:case] como você quer. Quando você chama case.save tudo o resto vai ser salvos também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top