-1

我想更改视图的状态。模型

aasm :column => 'state' do
    state :activated, :initial => true
    state :desactivated

    event :to_desactivated do
       transitions :to => :desactivated,  :from => :activated 
    end
    event :to_activated do
       transitions :to => :activated,  :from => :desactivated 
    end

控制器

def to_desactivated
@mcampaign_facturation=McampaignFacturation.find_by_id(params[:id])
      @mcampaign_facturation.to_desactivated!

  end

  def to_activated
@mcampaign_facturation=McampaignFacturation.find_by_id(params[:id])
      @mcampaign_facturation.to_activated!

     end

看法

- @mcampaign_facturations.each do |key, v|
  %tr.df{:class=>cycle('odd','even')}
    %td.title{:align => "center"}= v[:name]
    %td.title{:align => "center"}= v[:name_comp]
    %td.title{:align => "center"}= v[:title]
    %td.title{:align => "center"}= v[:status]
    %td{:align => "rigth"}
      = link_to image_tag("editer.png", :border =>0, :title => t("Edit")), edit_mcampaign_facturation_path(key)
      = link_to image_tag("des.png", :border =>0, :size => "16x16", :title => t("Delete")),   mcampaign_facturation_to_desactivated_path(key), method: :put
      = link_to image_tag("at.png", :border =>0, :size => "16x16", :title => "Activate"),    mcampaign_facturation_to_activated_path(key), method: :put

路线

resources :mcampaign_facturations  do
      put :to_activated
      put  :to_desactivated
  end

当我点击一个链接时,我有这样的错误:

NoMethodError (undefined method `to_desactivated!' for nil:NilClass):
  app/controllers/mcampaign_facturations_controller.rb:90:in `to_desactivated'

我对方法 to_activated 有同样的错误

请帮忙

4

1 回答 1

0

如果key是您的实体 id (ActiveRecord id),那么您应该使用

mcampaign_facturation_to_desactivated_path(:id => key)

反而。

于 2015-02-19T23:23:40.127 回答