Итак, я действительно новичок в Ruby on Rails, и все это по-прежнему звучит как китайский для меня. Извините, если это глупый вопрос, но я пытаюсь создать новую кнопку в своем приложении, которая позволяет мне копировать вещи.Почему мои параметры не попадают в 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
property_values' для ноль: NilClass`
для линии:
unless @item.property_values.collect{|a| a.property_id}.index(property.id)
Что я делаю не так? Почему не прошло item
?
Вы должны подумайте о принятии ответов, которые разрешают вопросы, которые вы опубликовали. – zeantsoi