Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

domainSuffix ignored by views #32

Open
madeupname opened this issue Jul 8, 2016 · 0 comments
Open

domainSuffix ignored by views #32

madeupname opened this issue Jul 8, 2016 · 0 comments

Comments

@madeupname
Copy link

Copied from grails/grails-core#10023 - apparently github doesn't support moving issues.

TL;DR
In Grails 3, grails.scaffolding.templates.domainSuffix is ignored by scaffolding views, both static and dynamic. This breaks apps upgrading from 2.x.

Environment:
Windows 8.1
jdk1.8.0_92
Grails 3.1.7

I have upgraded an app from 2.4 to 3.1.7 and notice issues with scaffolding. In my 2.4 app, I had in Config.groovy:

grails.scaffolding.templates.domainSuffix = 'Instance'

And I'm pretty sure that was added by default, which means this will affect a lot of people.

In my controller's index method (rendered by default with the list scaffolding view), this line worked:

List<Company> companies = Company.findAll()
respond companies, model: [companyInstanceCount: Company.count()]

In the dynamic view, companies corresponded with companyInstanceList, and the view rendered perfectly.

After upgrading to 3.1.7, both the main body (list) and pagination were empty. After testing, I discovered the following:

  1. domainSuffix appears to change the model name, but not the corresponding variables in the view. Instead of expecting companyInstanceList and companyInstanceCount, it wants companyList and companyCount
  2. adding domainSuffix to application.yml as such did not change this.

grails:
    codegen:
        defaultPackage: com.madeupname.web
    scaffolding:
        templates:
            domainSuffix: Instance

I tested by explicitly setting model variable names::

[companyInstanceList: companies, companyInstanceCount: Company.count()]

domainSuffix is also ignored in static scaffolding, as views generated with

grails generate-views com.madeupname.web.Company

look for companyList, not companyInstanceList, etc.

Right now, the workaround is to:

  1. remove domainSuffix from config
  2. Update all your controllers to remove the word Instance from model variable names

If this was intentional, the Upgrading and Scaffolding sections of the documentation should be updated to prevent confusion. But this is a breaking change, so I assume it's a bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant