だから、私は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
問題は、何らかの理由で items_controller.rbitem
の関数に渡されないように見えるためcopy
、コピー ボタンをクリックするたびにエラーが発生することです。
undefined method
nil:NilClass` の property_values'
行の場合:
unless @item.property_values.collect{|a| a.property_id}.index(property.id)
私は何を間違っていますか?なぜitem
合格しないのですか?