12

とてもシンプルなはずなので、なぜこれがわからないのかわかりませんが、基本的にはアクションへのリンクを作成しようとしています(ショーの横に「公開」を表示したいのですが、 Active Adminの各リソースの編集、削除)。

私は彼らが彼らのウィキで提案するコードを使用しました:

 action_item do
    link_to "button label", action_path(post)
 end

問題は、レールが「ポスト」が何であるかを知らないためにエラーが発生することです。ゼロです。GithubのWikiのバージョンは、投稿の代わりに「リソース」を使用することを除いて、同じコードを持っています。それが私がそこで自分のリソース名を使用することを意味しているのか、それとも実際に変数「resource」を使用することになっているのかはわかりませんでした。後者のケースを試してみたところ、「IDがないと見つかりませんでした」というエラーが発生しました。

問題は、変数名をどこに設定すればよいかということです。彼らはイテレータとして何を使用していますか?

4

3 に答える 3

11

私はこれを使用していました:

action_item only: :show do |resource|
  link_to('New Post', new_resource_path(resource))
end

アップデート

action_item only: :show do
  link_to('New Post', new_resource_path)
end

ありがとうAlterLagos

于 2013-04-15T20:56:10.963 に答える
6

私はこれを非常によく似たコードで達成しました。以下を参照してください。

私の中:app/admin/posts.rb

member_action :publish, method: 'get' do
  post = Post.find(params[:id])
  post.publish!
  redirect_to admin_post_path(post), notice: 'Post published!'
end

私の場合、リンクボタンはshowアクションでのみ使用できるようにします。

action_item :only => :show do
  if post.status == 'pending' 
    link_to 'Publish', publish_admin_post_path(post)
  elsif post.status == 'published'
    link_to 'Expire', expire_admin_post_path(post)
  else
  end
end

これがお役に立てば幸いです。

于 2012-08-03T18:16:28.360 に答える
6

ActiveAdminでは、使用resourceしているオブジェクトを参照するために使用する必要があります。

resourceのようなアクションで使用するindexと、ActiveAdminが機能していないため、エラーが発生する可能性があります。これを防ぐには、ボタンを表示するアクションを指定します。

onlyアクションを指定するには、ボタンを表示するアクションの配列を使用して引数を指定します。次に例を示します。

action_item :only => [:show, :edit] do
  ...
end
于 2013-07-08T16:40:25.960 に答える