不能渲染的fields_for-rails 3 [英] fields_for not rendering - rails 3

查看:65
本文介绍了不能渲染的fields_for-rails 3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最后移到Rails 3进行一个新项目,并且已经遇到了菜鸟问题.

Finally moved to Rails 3 for a new project and already running into a rookie problem.

试图做一个简单的嵌套表格.

Trying to do a simple nested form.

2个模型:列表和任务

2 models: list and tasks

列表模型

class List < ActiveRecord::Base
  has_many :tasks, :dependent=>:destroy
  accepts_nested_attributes_for :tasks, :reject_if => lambda { |a| a[:name].blank? }
end

任务模型

class Task < ActiveRecord::Base
  belongs_to :list

end

列表控制器

def new
   @list = List.new
   3.times{ @list.tasks.build }
end

lists/new.html.erb

<% form_for :list, :url=>{:action=>"create"} do |f| %>
    <%= f.text_field :name, :class=>'big' %>
    <%= f.label :name, "ex: Today's Todos, Christmas List" %>

    <% f.fields_for :tasks do |builder| %>
        <p>
            <%= builder.label :name, "Task" %>
            <%= builder.text_field :name %>
            <%= builder.check_box :_destroy %>
        </p>
    <% end %>

    <p><%= submit_tag "Create List", :id => "submit", :name => "submit", :class => "form_submit", :disabled => false, :disable_with => "Please wait..." %></p>

<% end -%>

使用 debug @list ,我可以看到我在控制器中创建的3个任务,但是fields_for无法呈现.

Using debug @list I can see the 3 tasks I created in my controller, but it fields_for won't render.

有什么想法吗?

推荐答案

在rails 3中,对于form_forfields_for,应使用<%=而不是<%.看看是否有帮助.

In rails 3, you should use <%= instead of <% for form_for and fields_for . See if that helps.

这篇关于不能渲染的fields_for-rails 3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆