- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ryanb 的 nested_form gem,它似乎无法正常工作。删除链接不起作用(我正确安装了//= require jquery_nested_form,看起来它正在加载,但我不断收到此错误:
undefined method `values_at' for nil:NilClass
当我去添加:
= f.link_to_add "Add a line item", :invoice_line_items
此外,如果没有该行,它可以工作,但删除链接不会执行任何操作:
line_item.link_to_remove "Remove this line item"
这是我的代码:
.row-fluid
.span10.offset1
= nested_form_for(@invoice) do |f|
- if @invoice.errors.any?
#error_explanation
%h2
= pluralize(@invoice.errors.count, "error")
prohibited this invoice from being saved:
%ul
- @invoice.errors.full_messages.each do |msg|
%li= msg
.fieldset
%legend
= "New Invoice for #{@client.name}"
.form-horizontal
.pull-left
.control-group
%label.control-label{:style => "width: 100px;"}
Invoice ID
.controls{:style => "margin-left: 120px;"}
= f.text_field :client_invoice_id, :class => "input-small", :placeholder => @invoice_count_placeholder
.control-group
%label.control-label{:style => "width: 100px;"}
Due Date
.controls{:style => "margin-left: 120px;"}
= f.select :payment_term, @payment_terms, { :required => "true" }, { :class => "span10" }
.pull-right
.control-group
%label.control-label
Issue Date
.controls{:style => "margin-right: 60px;"}
= f.text_field :issue_date, :id => "date-picker", :class => "input-small", :required => "true"
.control-group
%label.control-label
Discount
.controls{:style => "margin-right: 60px;"}
.input-append
= f.text_field :discount, :class => "input-small", :placeholder => "Optional"
%span.add-on %
.row-fluid
%table.table
= f.fields_for :invoice_line_item do |line_item|
%tr
%th
%th.span8 Description
%th.span1 Quantity
%th.span1 Rate
%th.span1 Amount
%tr
%td= line_item.link_to_remove "Remove this line item"
%td= line_item.text_field :description
/ %td= text_area_tag 'body', nil, :style => "width:96%;"
%td= text_field_tag 'hello', nil, :class => "input-mini"
%td= text_field_tag 'hello', nil, :class => "input-mini"
%td $99.99
= f.link_to_add "Add a line item", :invoice_line_items
.form-actions
= f.submit "Preview Invoice", :class => "btn btn-primary pull-right"
知道我做错了什么吗?我希望能够轻松地将行项目添加到发票中,然后保存整个项目。这是我的联想:
class Invoice < ActiveRecord::Base
## ASSOCIATIONS ##
belongs_to :user
belongs_to :client
has_many :invoice_line_items
## NESTED ATTRIBUTES ##
accepts_nested_attributes_for :invoice_line_items, :allow_destroy => true
class InvoiceLineItem < ActiveRecord::Base
## ASSOCIATIONS ##
belongs_to :invoice
编辑:这是我的发票 Controller 的新操作:
def new
@client = current_user.clients.find(params[:client_id])
@invoice = Invoice.new(:client_id => @client.id)
@payment_terms = Invoice.payment_terms
if @client.invoices.count > 0
@invoice_count_placeholder = "Last used: #{@client.invoices.last.client_invoice_id}"
else
@invoice_count_placeholder = ""
end
respond_to do |format|
format.html # new.html.erb
format.json { render json: @invoice }
end
end
最佳答案
我陷入了同样的“未定义方法”错误,在我将 f.fields_for
调用的第一个参数更改为 plural 形式后一切正常,只是像 has_many 协会。所以在你的情况下应该是:
= f.fields_for :invoice_line_items do |line_item|
因为 Invoice 模型中的关联是 has_many :invoice_line_items
希望对大家有帮助。
关于ruby-on-rails - 为 nil :NilClass using nested_form_for 获取未定义的方法 `values_at',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15777038/
我希望返回一个数组的元素,索引在另一个数组中。例如: array = ["h", "y", "R", "X", "y", "u", "w", "o", "q"] indices_array = [1,
我收到错误 ActionView::Template::Error (undefined method `values_at' for nil:NilClass): 使用nested_form gem
我正在尝试通过作为参数传入的键提取散列值: def menu @menu = {"burger" => 5, "chips" => 2, "coke" => 1} end def receive_
我正在使用 ryanb 的 nested_form gem,它似乎无法正常工作。删除链接不起作用(我正确安装了//= require jquery_nested_form,看起来它正在加载,但我不断收
我是一名优秀的程序员,十分优秀!