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

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

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

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Router

Routerは、異なるネットワーク同士を相互に接続するための通信機器。インターネットでのデータを自動的に振り分け、一つのインターネット回線を複数のコンピュータで使用することが可能です。DHCPによりIPアドレスを自動的に割振りすることもできます。

Ruby on Rails

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

Q&A

1回答

547閲覧

タスク管理アプリにログイン機能を実装したらタスク投稿がでデグレードしたことに関して

daponn

総合スコア5

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Router

Routerは、異なるネットワーク同士を相互に接続するための通信機器。インターネットでのデータを自動的に振り分け、一つのインターネット回線を複数のコンピュータで使用することが可能です。DHCPによりIPアドレスを自動的に割振りすることもできます。

Ruby on Rails

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

0グッド

0クリップ

投稿2019/12/14 17:11

編集2019/12/15 00:10

前提・実現したいこと

ruby初心者です。
タスク管理にユーザーログインを実装させ、タスクにユーザの紐付けすること
###発生している問題・エラーメッセージ
タスクにユーザー登録をしログインできるようになったが、タスク管理アプリの投稿や詳細機能でエラーが出るようになった
イメージ説明
###該当のソースコード
config/routes.rb

Rails.application.routes.draw

1 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 2 root to: 'tasks#index' 3 4 get 'login', to: 'sessions#new' 5 post 'login', to: 'sessions#create' 6 delete 'logout', to: 'sessions#destroy' 7 8 resources :users 9 get 'login', to:'users#new' 10 resources :tasks, only: [:index, :show, :new, :create] 11end 12 13```app/views/tasks/show.html.erb 14```<h1>id: <%= @task.id %> のタスク詳細ページ</h1> 15 16<p>ステータス: <%= @task.status %></p> 17<p>タスク<%= @task.content %></p> 18 19<%= link_to '一覧に戻る', tasks_path %> 20<%= link_to 'このタスクを編集する', edit_task_path(@task) %> 21<%= link_to 'このタスクを削除する', @task, method: :delete, data: { confirm: '本当に削除してよろしいですか?' } %> 22 23```app/views/tasks/index.html.erb
<h1>タスクリスト一覧</h1> <ul> <% @tasks.each do |task| %> <li><%= link_to task.id, task %> : <%= task.status %> &gt; <li><%= task.content %></li> <% end %> </ul>

<%= link_to '新規タスクの投稿', new_task_path %>

app/controller/tasks_controller

1

class TasksController < ApplicationController
before_action :require_user_logged_in, only: [:index, :show]

def index
@tasks = Task.all
end

def show
end

def new
@task = Task.new
end

def create
@task = Task.new(task_params)

if @task.save flash[:success] = 'Task が正常に投稿されました' redirect_to @task else flash.now[:danger] = 'Task が投稿されませんでした' render :new end

end

def edit
end

def update
if @task.update(task_params)
flash[:success] = 'Task は正常に更新されました'
redirect_to @task
else
flash.now[:danger] = 'Task は更新されませんでした'
render :edit
end
end

def destroy
@task.destroy

flash[:success] = 'Task は正常に削除されました' redirect_to tasks_url

end

private

Strong Parameter

def set_task
@task = Task.find(params[:id])
end

def task_params
params.require(:task).permit(:content, :status)
end

end

 

###自分で調べたことや試したこと rootの変更やコードの変更 ###使っているツールのバージョンなど補足情報 Rails 5.2.3 ログイン機能を実装する前では投稿昨日は使えていた

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

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

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

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

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

winterboum

2019/12/14 21:24

TasksControllerのcodeを追加して下さい
daponn

2019/12/14 23:59

情報が足りなくすみませんでした。 TasksController追加しました。
winterboum

2019/12/15 00:03

TasksController見当たらんです
daponn

2019/12/15 00:07

追加できてなかったです・・・今できました。
guest

回答1

0

show の view で <p>ステータス: <%= @task.status %></p> @task が使われていますが、showのcontrollerでは
def show end
と @taskが定義されていません。

多分 パラメータ id が来ていますから@task = Task.find(params[:id])を入れてみて

投稿2019/12/15 00:20

winterboum

総合スコア23347

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

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

winterboum

2019/12/15 00:53

そこに問題点が書かれていませんか?
winterboum

2019/12/15 05:23

エラーメッセージをよく読んでみて下さい。なんて書かれてます?
daponn

2019/12/15 06:09

deletのルートを作成しなくてはいけないと書いてあります
winterboum

2019/12/15 07:27

それはどこで定義しますか
daponn

2019/12/15 09:43

config/routes.rbで定義をする
winterboum

2019/12/15 09:44

はい、そこどう定義してありますか?
daponn

2019/12/15 14:31

loginが定義してあるのでdeleteを追加してみましたが、ダメでした Rails.application.routes.draw do # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html root to: 'tasks#index' get 'login', to: 'sessions#new' post 'login', to: 'sessions#create' delete 'logout', to: 'sessions#destroy' resources :users get 'login', to:'users#new' resources :tasks, only: [:index, :show, :new, :create] delete 'delete', to:'tasks#show' end
winterboum

2019/12/15 21:51

貼っていただいたキャプチャーは私の画面では端が切れて何のdeleteがないのか読めないのですが、そこですか? エラーメッセージをよく読んで見てください。session関係ではないと思う。 resource関係ではないですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問