Rails fields_for 表单未显示,嵌套表单 [英] Rails fields_for form not showing up, nested form

查看:50
本文介绍了Rails fields_for 表单未显示,嵌套表单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个简单的 rails 项目.一切都很好,直到我尝试添加一个 belongs_to 处理的新模型 Paintings 和一个 has_many 绘画通过的 Patient治疗.所以不知何故我创建的嵌套表单没有出现,我相信它与控制器有关!谢谢,还有来自德国的问候!

治疗控制器:

class TreatmentsController <应用控制器定义创建@patient = Patient.find(params[:patient_id])@treatment = @patient.treatments.create(params[:treatment])重定向到患者路径(@患者)结尾销毁@patient = Patient.find(params[:patient_id])@treatment = @patient.treatments.find(params[:id])@treatment.destroy重定向到患者路径(@患者)结尾结尾

以及未显示的带有 nested fields_for 的处理表单:

<%= form_for([@patient, @patient.treatments.build]) do |f|%><div class="field"><%= f.label :content%><%= f.text_area :content, :cols =>"30", :rows =>10"%>

<div class="field"><%= f.label :category_id %><%= f.collection_select :category_id, Category.find(:all), :id, :typ %>

<%= f.fields_for :paintings do |ff|%><div class="field"><%= ff.label :name, 'Tag:' %><%= ff.text_field :name %>

<%结束%><div class="field"><%= f.submit nil, :class =>'btn btn-small btn-primary'%>

<%结束%>

更新:

显示站点:

<% @patient.treatments.each do |treatment|%><tr><td><%=treatment.category.try(:typ)%></td><td><%=处理.含量%</td><td><%=治疗.天%</td><td><div class="箭头"></div></td></tr><tr>

解决方案

请尝试

= f.fields_for :paintings, Painting.new do |p|

I have created an simple rails project. All worked fine until I tried to add a new model Paintings that belongs_to treatment and an Patient that has_many Paintings through Treatment. So somehow the nested form I created does not show up, I believe it has to do with the controller! Thanks, and greetings from Germany!

Treatments controller:

class TreatmentsController < ApplicationController
  def create
    @patient = Patient.find(params[:patient_id])
    @treatment = @patient.treatments.create(params[:treatment])
    redirect_to patient_path(@patient)
  end

  def destroy
    @patient = Patient.find(params[:patient_id])
    @treatment = @patient.treatments.find(params[:id])
    @treatment.destroy
    redirect_to patient_path(@patient)  
  end
end

And the form for treatments with nested fields_for that doesn't show up:

<%= form_for([@patient, @patient.treatments.build]) do |f| %>
  <div class="field">
    <%= f.label :content %>
    <%= f.text_area :content, :cols => "30", :rows => "10" %>
  </div>
  <div class="field">
    <%= f.label :category_id %>
    <%= f.collection_select :category_id, Category.find(:all), :id, :typ %>
  </div>

  <%= f.fields_for :paintings do |ff| %>
    <div class="field">
      <%= ff.label :name, 'Tag:' %>
      <%= ff.text_field :name %>
    </div>
  <% end %>

  <div class="field">
    <%= f.submit nil, :class => 'btn btn-small btn-primary' %>
  </div>
<% end %>

UPDATE:

Show Site:

<% @patient.treatments.each do |treatment| %>
  <tr>
    <td><%= treatment.category.try(:typ) %></td>
    <td><%= treatment.content %></td>
    <td><%= treatment.day %></td>
    <td><div class="arrow"></div></td>
  </tr>
  <tr>

解决方案

Please try

= f.fields_for :paintings, Painting.new do |p|

这篇关于Rails fields_for 表单未显示,嵌套表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
其他开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆