だから、私は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 methodnil:NilClass` の property_values'
行の場合:
unless @item.property_values.collect{|a| a.property_id}.index(property.id)
私は何を間違っていますか?なぜitem合格しないのですか?