質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

Q&A

1回答

1508閲覧

railsで削除機能を実装する

kazu1993

総合スコア8

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

0グッド

0クリップ

投稿2016/06/02 05:40

編集2022/01/12 10:55

タイトルにあるように、railsで削除機能を実装したいのですが、削除をすると一覧の上から削除されるようになってしまいます。以下に書くコードを載せます。usersテーブルとcorpsテーブルは、corp_userモデルを中間テーブルとする関係にあります。
memberl.html.erb
<% @corp.users.each do |u| %>
<%= link_to "/users/#{u.id}" do %>

<%= u.fullname %>

<%= linkto 'メンバーから外す', "/corps/#{u.id}", method: :delete, class: 'btn btn-default btn-xs' %>

<% end %>
<% end %>
routes.rb
scope :corps do
delete '/:user_id' => 'careers#destroy_corp_user'
end
careers_controller.rb
def destroy_corp_user
@corpuser = CorpUser.find_by(params[:user_id])
@corpuser.destroy
redirect_to "#{request.headers["HTTP_REFERER"]}#navtab3"
end
user.rb
has_one :corp_user
delegate :corp_user, to: :corp
corp_user.rb
belongs_to :corp
belongs_to :user
corp.rb
has_many :corp_users
has_many :users, through: :corp_users, source: :user
となっています。
また、削除を行った時のログを貼っておきます。

削除実行時のログ

情報が十分かわかりませんが解答よろしくお願いします。
もし必要な情報などがあれば載せます。

なるべく早く解決したいため、Qiitaでも質問しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

corp_userを削除する際に、目的のcorp_userではなく、違うcorp_userが削除されている、という認識で回答します。

destroyするときのcorp_userを見つける際に、find_by(user_id:)を使っているようですが、この場合、corp_userは一意にならないのではないですか?
一意になるのは、user_id,corp_idの両方が指定された場合、もしくはcorp_userのidが指定された場合のみでしょう。

ですから、destroyアクションを呼ぶ際に、パラメータとしてcorp_idとuser_idの両方を渡すか、corp_user.idを渡すかしなければならないのではないですか?

投稿2016/06/02 11:45

rifuch

総合スコア1901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問