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

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

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

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

ウィンドウ

コンピューター用語において、ウィンドウとはユーザとプログラムのやり取りを可能にするGUIの枠組みのことをいいます。

Ruby on Rails

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

Q&A

解決済

2回答

1469閲覧

編集ボタンを押すとサブウィンドウは表示されるが偏移先の画面でCouldn't find Task with 'id'=:idが起きてしまう。

randm_meet

総合スコア6

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

ウィンドウ

コンピューター用語において、ウィンドウとはユーザとプログラムのやり取りを可能にするGUIの枠組みのことをいいます。

Ruby on Rails

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

0グッド

0クリップ

投稿2020/03/27 04:05

前提・実現したいこと

rails 初心者です。
またお力を貸していただけると助かります。
rails js を使ってタスク共有アプリを作成しています。

実現したいこと
index ページから 編集ボタンをクリック→サブウィンドウで編集画面を開きたい。
編集ボタンを押すとサブウィンドウは表示されるが偏移先の画面でCouldn't find Task with 'id'=:idが起きてしまう。

発生している問題・エラーメッセージ

indexページにて編集ボタンをクリック サブウィンドウは開くが中ペーぞ偏移ができず。

サブウィンドウ ActiveRecord::RecordNotFound in TasksController#edit Couldn't find Task with 'id'=:id index-countroller def edit @task = Task.find(params[:id]) ← ここでエラー end

該当のソースコード

app/countllors/tasks_controller.rb

class TasksController < ApplicationController def index @tasks = Task.all end def show @task = Task.find(params[:id]) end def edit @task = Task.find(params[:id]) ←問題の部分 end def update @task = Task.find(params[:id]) @task.update(params) end def destroy end private def task_params params.require(:task).permit( :name, :tasktext ) end end

app/views/tasks/index.html.haml

.said-content-body - @tasks.each do |task| .task-box .tasks .tasks-name =task.name .tasks-text =task.tasktext .tasks-day 作成日 =task.created_at.strftime("%Y年%m月%d日 %H時%M分") %a{:href => "javascript:window.open('tasks/:id/edit', 'window', $feature);"} = icon('fa', 'tools', class: 'icon')

app/views/tasks/edit.html.haml

移動先のview 未編集 .oowaku .head .main = form_for (/task/{@task.id}/update)do |f| .field = f.label :name, "タスク名" = f.text_field :@task.name .field = f.label :tasktext, "作業内容" = f.text_area :@task.tasktext .actions = f.submit '編集を保存する', class: "btn"

config/routes.rb

Rails.application.routes.draw do root "top#index" resources :tasks, only: [:index, :show, :update, :edit, :destroy] resources :komado,only: [:index, :create, :new, :update] end

試したこと

エラー文Couldn't find Task with 'id'=:idから :idを探すことができなかったと考察。idがnill?
ルートを確認 edit_task GET /tasks/:id/edit(.:format) tasks#edit
試しに /tasks/:id/edit → tasks#editに変えてみるとindexのページが表示される。
edit_task_path(tasks.id)に変更 → routing error
コントローラーの確認
edit
@task = Task.find(params[:id]) 
end
binding.pryするもエラーで取得できず
https://programming-beginner-zeroichi.jp/articles/45
↑のページを参考にするも解決できませんでした。

補足情報(FW/ツールのバージョンなど)

Rails 5.0.7.2
mysql2 Server version: 5.6.47 Homebrew

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

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

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

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

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

guest

回答2

0

自己解決

回答していただきありがとうございました。
別ウィンドウでのページを開くのはもっとJSについて理解を深めてからにしようと思います。

想定していた方法とは異なりますが、コントローラーを統合して別のウィンドウでの操作をせずに元のウィンドウを偏移させることで編集画面に辿りつけたので、機能的な問題は解決できました。

投稿2020/03/28 13:41

randm_meet

総合スコア6

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

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

0

%a{:href => "javascript:window.open('tasks/:id/edit', 'window', $feature);"}

こう書くと、文字通り/tasks/:id/editのURLを開きにかかってしまいます。

投稿2020/03/27 04:20

maisumakun

総合スコア145121

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問