首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的参数不能在Ruby on Rails中传递?

为什么我的参数不能在Ruby on Rails中传递?
EN

Stack Overflow用户
提问于 2013-06-16 05:08:58
回答 2查看 68关注 0票数 0

所以,我是Ruby on Rails的新手,整个事情对我来说听起来仍然像中国人。如果这是一个愚蠢的问题,请原谅,但我正在尝试在我的应用程序上创建一个新的按钮,让我可以复制东西。

在我的表格上,我有:

代码语言:javascript
复制
%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中,我有:

代码语言:javascript
复制
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中,我有:

代码语言:javascript
复制
  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似乎没有传递给items_controller.rb中的copy函数,所以每次我单击copy按钮时,我都会收到错误消息:

nil的undefined methodproperty_values‘:NilClass`

对于行:

unless @item.property_values.collect{|a| a.property_id}.index(property.id)

我做错了什么?为什么item没有通过?

EN

Stack Overflow用户

发布于 2013-06-16 05:18:22

首先,您需要修改表单视图以传递Item id,您可以使用该id在控制器中查找相应的模型对象:

代码语言:javascript
复制
%span.btn.btn-mini.btn-inverse= link_to copy_image, copy_campaign_signal_processor_item_path(@campaign, @processor, item.id) ,data: { toggle:"modal",target: "#myModal"}, remote: true

在您的表单中,您将三个参数传递给您的路径,但是您尚未在您的路径中命名它们。您可以命名将在:items资源块中传递给copy路由的参数:

代码语言:javascript
复制
resources :items do
    member do
        get 'copy/:campaign/:processor/:item_id', :action => 'copy'
    end
end

然后,在您的控制器中,您可以通过ID查找Item

代码语言:javascript
复制
def copy
   @item = Item.find(params[:item_id])
   ...
end
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17127899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档