所以,我对 Ruby on Rails 真的很陌生,整个事情对我来说仍然听起来像中文。如果这是一个愚蠢的问题,请原谅,但我正在尝试在我的应用程序上创建一个新按钮,让我可以复制内容。
在我的表格上,我有:
%span.btn.btn-mini.btn-inverse= link_to copy_image, copy_campaign_signal_processor_item_path(@campaign, @processor, item) ,data: { toggle:"modal",target: "#myModal"}, remote: true
这很好用,并为我创建了按钮。然后,在 routes.rb 中,我有:
resources :signal_processors, exclude: [:index, :new, :create], controller: 'processors' do
member do
get :modify, :action => :edit, :force_schema_update => true
end
resources :items do
member do
get :copy
end
end
最后,在 items_controller.rb 中,我有:
def copy
@overlay_title = "Copy #{@processor.item_name}"
@processor.properties.each do |property|
unless @item.property_values.collect{|a| a.property_id}.index(property.id)
@item.property_values << SignalProcessor::PropertyValue.new(property: property)
end
end
respond_to do |format|
format.js
end
end
问题是由于某种原因item
似乎没有传递给copy
items_controller.rb 中的函数,所以每次单击复制按钮时,都会出现错误:
undefined method
nil 的 property_values':NilClass`
对于该行:
unless @item.property_values.collect{|a| a.property_id}.index(property.id)
我究竟做错了什么?为什么不item
通过?