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

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

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

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

3518閲覧

【rails】First argument in form cannot contain nil or be emptyのエラーを解決したい。

YousukeTanaka

総合スコア79

Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/01/02 03:24

表題の件で、質問いたします。

現在の開発環境

ruby 2.3.0p0 Rails 5.0.6

やりたいこと(方向性)

follow機能を実装しています。

質問したいこと

表題のエラーを解決方法

①について

以下の箇所でエラーが表示されます。
イメージ説明

users/_unfollow.html.erb(以下は最終的にshow.html.erbで表示されます。)

<%= form_for(current_user.active_relationships.find_by(following_id: @user.id), html:{method: :delete}, remote: true) do |f| %> <%= f.submit "フォローを解除", class: "btn btn-large follow-btn" %> <% end %>

解決について幾つか調べましたが、コントローラー側での@userの設定を指摘されているサイトが多かったのですが、それでは解決しませんでした。

users_controller.rb

def show @user = User.find(params[:id]) end

関係あるかどうかはわかりませんが、念のためmodels/user.rbも記載します。

# 自分がフォローした人を取り出す。 has_many :active_relationships,class_name: "Relationship", foreign_key: "follower_id", dependent: :destroy has_many :followings, through: :active_relationships, source: :following # 自分のfollowerを取り出す。 has_many :passive_relationships,class_name: "Relationship", foreign_key: "following_id", dependent: :destroy has_many :followers, through: :passive_relationships, source: :follower # ユーザーをフォローする def follow(other_user) active_relationships.create(following_id: other_user.id) end # ユーザーをアンフォローする def unfollow(other_user) active_relationships.find_by(following_id: other_user.id).destroy end # 現在のユーザーがフォローしてたらtrueを返す def followings?(other_user) following.include?(other_user) end

以上、何卒よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

自己解決

解決いたしました。このエラーは_follow.html.erbの中の以下のコードが関係していました。
以下の書き方が正しくなかっ多ために起きたエラーであることがわかりました。

<div><%= hidden_field_tag :following_id, @user.id %></div>

投稿2018/01/02 08:10

YousukeTanaka

総合スコア79

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問