1

インデックスページusers_controllerがあります:

  def index
    @companies = Company.where(:is_confirmed => "f")
    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @companies }
    end
  end

ボタンを押すだけで、会社がステータスを確認済みに変更しました

   def confirm
    company = Company.find(params[:id])
    company.is_confirmed = "t"
    company.save
    redirect_to users_path
  end

確認を呼び出す必要があるボタン

= link_to '<i class="icon-ok icon-white"></i> '.html_safe + t('Confirm'), users_path, confirm: t('Are you sure'), :controller => "users", :action => "confirm", :class => 'btn btn-small btn-success'

修正方法を教えてください。または、動作するバージョンが表示される場所を教えてください

4

2 に答える 2

3
= link_to confirm_company_path(company), confirm: 'Are you sure', method: :post do
  %i{class: "icon-ok icon-white"}
  = t('Confirm')

ルート内.rb

post '/company/:id/confirm' => "users#confirm", as: :confirm_company

1)GETオブジェクトを変更するときにリクエストを使用せず、POST代わりに使用します。

2)確認ロジックを会社モデルに移動し、アクションを会社コントローラーに確認します

于 2012-10-15T13:12:50.360 に答える
1

controller / action/id引数とRESTfulルートのどちらかを選択する必要があります。railsapiを確認してください。あなたはおそらくこれが欲しいです:

= link_to '<i class="icon-ok icon-white"></i> '.html_safe + t('Confirm'), :controller => "users", :action => "confirm", :id => @companies, method: :post, confirm: t('Are you sure'), :class => 'btn btn-small btn-success'

また

= link_to '<i class="icon-ok icon-white"></i> '.html_safe + t('Confirm'), confirm_users_path(@companies), method: :post, confirm: t('Are you sure'), :class => 'btn btn-small btn-success'

ルートが次のようになっていることを意味します(RESTful):

resources :users do
  post 'confirm'
end

Yuri Barbashovは正しいです、投稿はここではるかに理にかなっています。

于 2012-10-15T13:01:22.003 に答える