I'm using responders gem in my Rails 4.2 application. I got a pretty complex situation, where in a Organization model edit view I got a form for a OrganizationUser with one input. Adding user to organization invokes a create action in a OrganizationUsersController. I am using responders there with redirect action, something like this:
def create
@organization_user = @organization.organization_users.create(organization_user_params)
respond_with @organization_user do |format|
format.html { redirect_to edit_organization_path(@organization) }
end
end
And my translations:
flash:
actions:
create:
notice: '%{resource_name} was successfully created.'
alert: '%{resource_name} could not be created.'
organization_users:
create:
notice: "Member has been added"
alert: "Validation error"
The problem is that everything works if a resource is valid and is persisted to database. I am redirected to edit organization view with a proper notice message, but if validation fails I am redirected without any alert.
I can of course set flash alert message unless @organization_user is persisted, but that's the whole point of using responders to set flashes automatically.
Ok I figured it out. It turned out that with validation errors flash was properly set, but it was
flash.nowinstead offlashand afterredirect_toflash was deleted. The solution is to use:flash_now => falselike so: