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

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

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

ファイルシステムからファイル、データベースからレコードを削除することまたはメモリ内のオブジェクトの割り当てを取り消すことをさします。もしくは、HTTPプロトコルのDELETEを指すこともあります。

Grails

GrailsはGroovyとJavaを使うウェブアプリケーションのフレームワークです。高生産性のアプリケーションの開発を中心にしており、HibernateやSpringなどよく使われるJavaのテクノロジーを使います。

Groovy

Groovyは、Java用のオブジェクト指向型プログラミング言語です。PythonやRuby、Perl、そしてSmalltalkに似た特徴を有する動的な言語です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Q&A

1回答

711閲覧

GrailsのDeleteについて

KonoLv1

総合スコア35

DELETE

ファイルシステムからファイル、データベースからレコードを削除することまたはメモリ内のオブジェクトの割り当てを取り消すことをさします。もしくは、HTTPプロトコルのDELETEを指すこともあります。

Grails

GrailsはGroovyとJavaを使うウェブアプリケーションのフレームワークです。高生産性のアプリケーションの開発を中心にしており、HibernateやSpringなどよく使われるJavaのテクノロジーを使います。

Groovy

Groovyは、Java用のオブジェクト指向型プログラミング言語です。PythonやRuby、Perl、そしてSmalltalkに似た特徴を有する動的な言語です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

0グッド

0クリップ

投稿2020/08/17 12:49

下記の入門サイトを参考にTodoアプリを作成しております。
https://koji-k.github.io/grails-tutorial/tutorials/todo-application/delete.html

入力した名前とテキストを保存できることは確認できたのですが、
削除を実行しても、削除されない状態です。

何が原因で削除が行えないのか解決できなかったため、お力添え頂ければ幸いです。

環境

  • MacOS Mojave
  • Intellij
  • Grails Version: 4.0.1
  • JVM Version: 11.0.2

Domain

Groovy

1package hoge 2 3class Hoge { 4 String name 5 String text 6 static constraints = { 7 } 8}

Controller

Groovy

1package hoge 2 3class HogeController { 4 5 def index() { 6 render(view: '/hoge/index', model: [hoges: Hoge.listOrderById()]) 7 } 8 9 def save() { 10 String text = params.text 11 String name = params.name 12 Hoge newHoge = new Hoge(name: name, text: text) 13 // DB save 14 if (newHoge.validate()) { 15 newHoge.save() 16 redirect(controller: "hoge", action: "index") 17 } else { 18 render(view: '/hoge/index', model: [errorHoge: newHoge, hoges: Hoge.listOrderById()]) 19 } 20 21 } 22 23 def delete() { 24 Hoge hoge = Hoge.get(params.long("id")) 25 if (hoge) { 26 hoge.delete() 27 flash.message = "deleted" 28 29 } else { 30 flash.error = "TodoId:${params.long("id")} is not found" 31 } 32 redirect(controller: "hoge", action: "index") 33 } 34}

View

gsp

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charaset="UTF-8"> 5 <title>create page</title> 6</head> 7<body> 8 <g:if test="${flash.message}"> 9 <div style="background-color: #269abc">${flash.message}</div> 10 </g:if> 11 <g:if test="${flash.error}"> 12 <div style="background-color: #db7093">${flash.error}</div> 13 </g:if> 14 <g:renderErrors bean="${errorHoge}" as="list" field="hogeName"/> 15 16 17 <p>文字と名前を登録します</p> 18 <g:form controller="hoge" action="save"> 19 <g:textField name="name" placeholder="name"/> 20 <g:textField name="text" placeholder="text"/> 21 <g:submitButton name="登録">Add Todo</g:submitButton> 22 </g:form> 23 <ul> 24 <g:each in="${hoges}" var="hoge"> 25 <li>${hoge.id} ${hoge.name} ${hoge.text}</li> 26 <g:link controller="hoge" action="delete" params="['id':hoge.id]"> 27 削除  28 </g:link> 29 <g:link controller="hoge" action="update" params="['id':hoge.id]"> 30 kousin 31 </g:link> 32 </g:each> 33 </ul> 34</body> 35</html>

builld.gradle

gradle

1buildscript { 2 repositories { 3 maven { url "https://repo.grails.org/grails/core" } 4 } 5 dependencies { 6 classpath "org.grails:grails-gradle-plugin:$grailsVersion" 7 classpath "org.grails.plugins:hibernate5:7.0.0" 8 classpath "gradle.plugin.com.github.erdi.webdriver-binaries:webdriver-binaries-gradle-plugin:2.0" 9 classpath "com.bertramlabs.plugins:asset-pipeline-gradle:3.0.10" 10 } 11} 12 13version "0.1" 14group "hoge" 15 16apply plugin:"eclipse" 17apply plugin:"idea" 18apply plugin:"war" 19apply plugin:"org.grails.grails-web" 20apply plugin:"com.github.erdi.webdriver-binaries" 21apply plugin:"org.grails.grails-gsp" 22apply plugin:"com.bertramlabs.asset-pipeline" 23 24repositories { 25 maven { url "https://repo.grails.org/grails/core" } 26} 27 28configurations { 29 developmentOnly 30 runtimeClasspath { 31 extendsFrom developmentOnly 32 } 33} 34 35dependencies { 36 developmentOnly("org.springframework.boot:spring-boot-devtools") 37 compile "org.springframework.boot:spring-boot-starter-logging" 38 compile "org.springframework.boot:spring-boot-autoconfigure" 39 compile "org.grails:grails-core" 40 compile "org.springframework.boot:spring-boot-starter-actuator" 41 compile "org.springframework.boot:spring-boot-starter-tomcat" 42 compile "org.grails:grails-web-boot" 43 compile "org.grails:grails-logging" 44 compile "org.grails:grails-plugin-rest" 45 compile "org.grails:grails-plugin-databinding" 46 compile "org.grails:grails-plugin-i18n" 47 compile "org.grails:grails-plugin-services" 48 compile "org.grails:grails-plugin-url-mappings" 49 compile "org.grails:grails-plugin-interceptors" 50 compile "org.grails.plugins:cache" 51 compile "org.grails.plugins:async" 52 compile "org.grails.plugins:scaffolding" 53 compile "org.grails.plugins:events" 54 compile "org.grails.plugins:hibernate5" 55 compile "org.hibernate:hibernate-core:5.4.0.Final" 56 compile "org.grails.plugins:gsp" 57 compileOnly "io.micronaut:micronaut-inject-groovy" 58 console "org.grails:grails-console" 59 profile "org.grails.profiles:web" 60 runtime "org.glassfish.web:el-impl:2.1.2-b03" 61 runtime "com.h2database:h2" 62 runtime "org.apache.tomcat:tomcat-jdbc" 63 runtime "javax.xml.bind:jaxb-api:2.3.0" 64 runtime "com.bertramlabs.plugins:asset-pipeline-grails:3.0.10" 65 testCompile "org.grails:grails-gorm-testing-support" 66 testCompile "org.mockito:mockito-core" 67 testCompile "org.grails:grails-web-testing-support" 68 testCompile "org.grails.plugins:geb" 69 testCompile "org.seleniumhq.selenium:selenium-remote-driver:3.14.0" 70 testCompile "org.seleniumhq.selenium:selenium-api:3.14.0" 71 testCompile "org.seleniumhq.selenium:selenium-support:3.14.0" 72 testRuntime "org.seleniumhq.selenium:selenium-chrome-driver:3.14.0" 73 testRuntime "org.seleniumhq.selenium:selenium-firefox-driver:3.14.0" 74} 75 76bootRun { 77 jvmArgs( 78 '-Dspring.output.ansi.enabled=always', 79 '-noverify', 80 '-XX:TieredStopAtLevel=1', 81 '-Xmx1024m') 82 sourceResources sourceSets.main 83 String springProfilesActive = 'spring.profiles.active' 84 systemProperty springProfilesActive, System.getProperty(springProfilesActive) 85} 86 87webdriverBinaries { 88 chromedriver '2.45.0' 89 geckodriver '0.24.0' 90} 91 92tasks.withType(Test) { 93 systemProperty "geb.env", System.getProperty('geb.env') 94 systemProperty "geb.build.reportsDir", reporting.file("geb/integrationTest") 95 systemProperty "webdriver.chrome.driver", System.getProperty('webdriver.chrome.driver') 96 systemProperty "webdriver.gecko.driver", System.getProperty('webdriver.gecko.driver') 97} 98 99 100assets { 101 minifyJs = true 102 minifyCss = true 103}

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

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

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

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

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

guest

回答1

0

今更の回答ですみません。。。
そのチュートリアルの作者です。

deleteを実行しているControllerのhoge.delete()hoge.delete(flush: true)にして試してみていただけませんか?

投稿2020/09/29 15:43

saba1024

総合スコア58

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問