0

我正在编写一个实用程序发票应用程序,并且客户有很多读数。读数属于客户。

在我的 routes.rb

resources :customers do 
    resources :readings
end

我希望在特定客户的视图中创建新的阅读,因此在我的客户控制器中

def show
    @customer = Customer.find(params[:id])
    @reading = Reading.new(:customer => @customer)
    respond_to do |format|
      format.html
    end
end

然后在我的客户的显示视图中,我添加了添加新客户阅读的表单,如下所示

<%= simple_form_for @customer,@reading do |f| %>
   <%= f.input :customer, :value => @reading.customer.name %>
   <%= f.input :date_of_reading, :as => :date %>
<% end %>

但是,在访问 localhost:3000/customers/1 时,我在为添加读数而添加的代码段中获得了 Customers#show 错误中的 no-method。可能是什么问题呢?

4

1 回答 1

0

问题是表单需要一个数组,但您传递的是两个单独的对象。改变:

<%= simple_form_for @customer, @reading do |f| %>

到:

<%= simple_form_for [@customer, @reading] do |f| %>
于 2012-11-21T12:35:18.053 回答